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(); 
  }
}

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

1 Комментарий

  1. Тигран

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

Оставить комментарий

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