zaLinux.ru

Решение проблемы на PHP 7: Parse error: syntax error, unexpected T_NEW


Если при обновлении до 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(); 
  }
}

Рекомендуемые статьи:

2 Комментарии

  1. Тигран

    Спасибо Вам огромное.
    Мне помогло удаление символа "&"

  2. YaBlogo

    У меня три сайта легло, а оказалось такое простое решение)

Добавить комментарий для Тигран Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *