Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 956
dendini Avatar asked May 09 '14 13:05

dendini


3 Answers

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
}
like image 54
John Conde Avatar answered Oct 01 '22 20:10

John Conde


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.

like image 38
Ozmah Avatar answered Oct 02 '22 20:10

Ozmah


You cant use like this if ($this->greatestId()["num_rows"] > 0) in PHP 5.3 ver use below code.

$var = $this->greatestId();
if ($var["num_rows"] > 0){
  // your code
}
like image 38
Manibharathi Avatar answered Sep 30 '22 20:09

Manibharathi