2014-05-09 33 views
9

難道這個PHP代碼行PHP 5.3.10與PHP 5.5.3語法錯誤意外「[」

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

作品在PHP 5.5,並返回在5.3的錯誤?

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

如何將其更改爲在PHP 5.3下工作?

回答

2

你不能在PHP 5.3中使用像這樣if ($this->greatestId()["num_rows"] > 0) ver使用下面的代碼。

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

Array dereferencing在PHP 5.4中可用這就是爲什麼這在PHP 5.3中不起作用。所以,你有你需要從你的函數調用獲取數組值額外的步驟,然後你可以使用它:

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

找到鏈接:https://php.net/manual/en/migration54.new-features.php裏面新增的功能說:添加了函數數組解除引用,例如: FOO()[0]。 – dendini

+0

昨天我遇到了這個錯誤,在我的本地env我有php5.5和5.3測試:/謝謝你的回答。 –

1

如PHP 5.4筆記中提到:

隨着PHP 5.4的可以直接對函數或方法調用的結果進行數組解引用。之前只能使用 臨時變量。

在PHP 5.3中無法做到這一點,您需要使用一個變量。