Если при обновлении до PHP 7 скрипт стал выдавать ошибку Parse error: syntax error, unexpected T_NEW и новая версия скрипта не доступна для обновления, то вы можете самостоятельно попытаться исправить проблему. Начните с поиска в исходном коде выражений вроде =& new и = & new (имеется дополнительный пробел), например:
$this->smilies =& new smilies_package($this->current_smilies);
Дело в том, что в PHP 7 больше нельзя назначить классы с символом &. Поэтому простое удаление символа & может помочь вернуть скрипты к жизни.
Найдите все =& и = & и удалить из них &.
Ещё один (совсем частный) пример кода, который вызывает эту же ошибку:
require_once('/../dao/memberdao.class.php'); class Member { public $objMemberDao= new MemberDao(); }
Т.е. имеется два класса memberdao и member. И создаётся объект класса memberdao внутри класса member.
Но здесь не может быть инициализирован новый объект. Это необходимо делать в функции __ construct
Правильный вариант:
require_once('/../dao/memberdao.class.php'); class Member { public $objMemberDao; public function __construct() { $this->objMemberDao= new MemberDao(); } }
Связанные статьи:
- Ошибка «Cannot load modules/libphp7.so» (РЕШЕНО) (100%)
- Ошибка «Unable to load dynamic library 'xmlrpc.so'» (РЕШЕНО) (100%)
- Ошибка «No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php8.1-fpm.sock (*:80) failed» (РЕШЕНО) (100%)
- PHP не отображает эмодзи из базы данных MySQL / MariaDB (РЕШЕНО) (100%)
- Ошибка «PHP Fatal error: Uncaught mysqli_sql_exception: No database selected» (РЕШЕНО) (100%)
- Почему MySQL (MariaDB) запрашивает пароль, даже если он указан с опцией «-p» (РЕШЕНО) (RANDOM - 50%)
Спасибо Вам огромное.
Мне помогло удаление символа "&"
У меня три сайта легло, а оказалось такое простое решение)