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, вам нужно использовать переменную.