2014-05-09 18 views
9

Có thể rằng đây dòng mã PHPPHP 5.3.10 vs PHP 5.5.3 lỗi cú pháp bất ngờ '['

if ($this->greatestId()["num_rows"] > 0) 

công trình trong PHP 5.5 và trả về một lỗi trong 5,3 ??

PHP Parse error: syntax error, unexpected '[' in /var/www/app/AppDAO.php on line 43 

Làm cách nào để thay đổi để hoạt động trong PHP 5.3?

Trả lời

2

Bạn không thể sử dụng như thế này if ($this->greatestId()["num_rows"] > 0) trong PHP 5.3 ver sử dụng mã bên dưới.

$var = $this->greatestId(); 
if ($var["num_rows"] > 0){ 
    // your code 
} 
15

Array dereferencing đã có sẵn trong PHP 5.4 Đó là lý do tại sao tính năng này không hoạt động trong PHP 5.3. Vì vậy, bạn có thêm một bước mà bạn cần phải nhận được giá trị mảng từ cuộc gọi chức năng của bạn và sau đó bạn có thể sử dụng nó:

$variable = $this->greatestId(); 
if ($variable["num_rows"] > 0){ 
     // do stuff 
} 
+1

tìm thấy liên kết: https://php.net/manual/en/migration54.new-features.php bên trong các tính năng mới mà họ nói: Chức năng dereferencing mảng đã được thêm vào, ví dụ: foo() [0]. – dendini

+0

Tôi chạy vào lỗi này ngày hôm qua, trên env địa phương của tôi tôi có php5.5 và thử nghiệm 5.3:/cảm ơn cho câu trả lời. –

1

Như đã đề cập trong PHP 5.4 ghi chú:

Tính đến PHP 5.4 có thể sắp xếp dereference kết quả của một cuộc gọi hàm hoặc phương thức trực tiếp. Trước khi chỉ có thể sử dụng biến số tạm thời .

Không thể thực hiện điều đó trong PHP 5.3, bạn cần sử dụng biến.

Các vấn đề liên quan