Приветствую форумчане. Прошу помощи по скрипту. После перехода на PHP 7.0 с PHP 5.3 повылазило куча ошибок. Путем обновления библиотек и прочтения различных FAQ удалось побороть предупреждения, ошибки. Кроме одной. Notice: Only variables should be passed by reference in \engine\File.php on line 60 Привожу всю функцию: PHP: public function findRow() { $params = array("SELECT * FROM ?_".$this->table.$this->_prepare()." ORDER BY id"); $rows = call_user_func_array(array($this->db, 'select'), $params); list($id, $result) = each($this->_convertRows($rows)); return $this->entity($result); } Проблема в строке: PHP: list($id, $result) = each($this->_convertRows($rows)); Можно конечно скрыть ошибки ну это ненадолго. Вычитал что в PHP 7.2 функция each объявлена устаревшей. Да и не комильфо это скрывать ошибки зная что они есть. Помогите, пожалуйста переписать функцию под PHP 7+ Буду очень признателен.
спасу тебя сразу от вопросов про deprecated each() через пол года. замени на PHP: public function findRow() { $params = array("SELECT * FROM ?_".$this->table.$this->_prepare()." ORDER BY id"); $rows = call_user_func_array(array($this->db, 'select'), $params); return $this->entity($this->_convertRows($rows)[0]??[]); } --- Добавлено --- че за хрень тут написана вообще? --- Добавлено --- а попробуй так: PHP: public function findRow() { $rows = $this->db->select("SELECT * FROM ?_".$this->table.$this->_prepare()." ORDER BY id"); return $this->entity($this->_convertRows($rows)[0]??[]); }
Большое спасибо за помощь! Ваш метод помог. Все работает. На почту пришел правильный код, не обрезанный.