PHP 5.3.10 и ошибка синтаксиса PHP 5.5.3 неожиданно "['

Возможно ли, что эта строка кода 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?

Ответ 1

Разбор разворота массива стал доступен в PHP 5.4. Почему это не работает в PHP 5.3. Таким образом, у вас есть дополнительный шаг, когда вам нужно получить значение массива из вашего вызова функции, а затем вы можете его использовать:

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

Ответ 2

Вы не можете использовать этот if ($this->greatestId()["num_rows"] > 0) в PHP 5.3 для использования ниже кода.

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

Ответ 3

Как упоминалось в примечаниях к PHP 5.4:

В соответствии с PHP 5.4 можно массировать разыменовывать результат вызов функции или метода. Прежде чем это было возможно только с помощью временная переменная.

Это невозможно сделать в PHP 5.3, вам нужно использовать переменную.