PHP 5.3.10 vs PHP 5.5.3 syntax error unexpected '['

Is it possible that this PHP code line

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

works in PHP 5.5 and returns an error in 5.3??

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

How can I change it to work under PHP 5.3?


Array dereferencing became available in PHP 5.4 That's why this doesn't work in PHP 5.3. So you have an extra step where you need to get the array value from your function call and then you can use it:

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

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

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

As mentioned in the PHP 5.4 notes:

As of PHP 5.4 it is possible to array dereference the result of a function or method call directly. Before it was only possible using a temporary variable.

It's not possible to do that in PHP 5.3, you need to use a variable.

链接地址: http://www.djcxy.com/p/11954.html

上一篇: PHP数组语法分析错误左方括号“[”

下一篇: PHP 5.3.10 vs PHP 5.5.3语法错误意外'''