2009-09-23 7 views
57

tôi có được điều này lỗi PHP:T_VARIABLE bất ngờ trong PHP là gì?

Parse error: syntax error, unexpected T_VARIABLE

Từ dòng này:

$list[$i][$docinfo['attrs']['@groupby']] = $docinfo['attrs']['@count']; 

Có gì không ổn với dòng này?

+0

X-Ref: [PHP Parse/Syntax Errors; và Làm thế nào để giải quyết chúng? - T_VARIABLE không mong đợi] (http://stackoverflow.com/a/18092267) cho các nguyên nhân phổ biến khác và sửa lỗi theo ngữ cảnh cụ thể. – mario

Trả lời

135

Có thể có dấu chấm phẩy hoặc khung bị thiếu một dòng trước dòng được dán của bạn. Nó có vẻ tốt với tôi, mỗi chuỗi được cho phép như là chỉ số mảng.

+0

Ồ, bạn đã nhắc nhở tôi, đó là một khung bị bỏ lỡ.Tại sao nó được gọi là T_VARIABLE? – omg

+1

Thông báo lỗi cho bạn biết có gì (không mong muốn), không có gì thiếu. Và có một biến, do đó, nó sẽ cho bạn biết chính xác điều đó. – OregonGhost

+1

Bởi vì '$ list' bất ngờ là một biến. –

16

Nó có thể là một số dòng khác nữa, PHP không phải lúc nào cũng chính xác.

Có thể bạn chỉ thiếu dấu chấm phẩy trên dòng trước.

Làm thế nào để tái tạo lỗi này, đặt điều này trong một tập tin gọi a.php:

<?php 
    $a = 5 
    $b = 7;  //error happens here. 
    print $b; 
?> 

Run nó:

[email protected] ~ $ php a.php 

PHP Parse error: syntax error, unexpected T_VARIABLE in 
/home/el/code/a.php on line 3 

Giải thích:

Các phân tích cú pháp PHP chuyển đổi chương trình của bạn thành loạt các thẻ. A T_VARIABLE là Mã thông báo loại VARIABLE. Khi trình phân tích cú pháp xử lý các mã thông báo, nó sẽ cố gắng hiểu chúng, và ném các lỗi nếu nó nhận được một biến mà không có phép nào được phép.

Trong trường hợp đơn giản ở trên với biến $b, phân tích cú pháp đã cố gắng để xử lý này:

$a = 5 $b = 7; 

Các php phân tích cú pháp nhìn vào $ b sau khi 5 và nói "đó là bất ngờ".