PHP 5.3.10 vs PHP 5.5.3语法错误意外'['

时间:2014-05-09 13:33:07

标签: php arrays php-5.3 dereference php-5.5

这个PHP代码行是否可能

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下工作?

3 个答案:

答案 0 :(得分:15)

Array dereferencing在PHP 5.4中可用。这就是为什么这在PHP 5.3中不起作用的原因。所以你有一个额外的步骤,你需要从函数调用中获取数组值,然后你可以使用它:

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

答案 1 :(得分:2)

你不能像PHP 5.3中的if ($this->greatestId()["num_rows"] > 0)那样使用以下代码。

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

答案 2 :(得分:1)

如PHP 5.4中所述:

  

从PHP 5.4开始,可以对a的结果进行数组解除引用   函数或方法直接调用。之前它只能使用一个   临时变量。

在PHP 5.3中不可能这样做,你需要使用一个变量。