Неожиданная синтаксическая ошибка 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?
3 ответа
Разыменование массива стало доступно в PHP 5.4. Вот почему это не работает в PHP 5.3. Таким образом, у вас есть дополнительный шаг, когда вам нужно получить значение массива из вызова функции, а затем вы можете использовать его:
$variable = $this->greatestId();
if ($variable["num_rows"] > 0){
// do stuff
}
Вы не можете использовать как это if ($this->greatestId()["num_rows"] > 0)
в PHP 5.3 ver используйте приведенный ниже код.
$var = $this->greatestId();
if ($var["num_rows"] > 0){
// your code
}
Как упоминалось в примечаниях PHP 5.4:
Начиная с PHP 5.4, можно напрямую разыменовать результат вызова функции или метода. Раньше это было возможно только с использованием временной переменной.
Это невозможно сделать в PHP 5.3, вам нужно использовать переменную.