2015-04-25 1 views
8

Мы разрабатываем CRM.неожиданный «класс» (T_CLASS) только на удаленном (не на местном)

В местных, у меня нет никаких проблем, но в отдаленных (OVH), у меня есть сообщение об ошибке:

Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /home/dubinfo/www/CRM/model/Locataire.php on line 126

Это код:

public function setVisites($visites) { 
    $this->_visites = CheckTyper::isArrayOfModel($visites, 
      VisiteMaisonInvestisseur::class, 'visites', __CLASS__); 
} 

Версия PHP на пульте дистанционного управления хост (OVH) составляет 5.4.38

+0

«класс» - это зарезервированное слово. Вы не должны использовать его как имя свойства. – Barmar

ответ

15

Использование class как имя константы доступно только в PHP 5.5.

Чтобы получить имя этого класса, вы можете заменить VisiteMaisonInvestisseur::class на номер get_class(new VisiteMaisonInvestisseur).

Или измените имя константы. Например: VisiteMaisonInvestisseur::class_name.

+0

спасибо, я изменил версию php на производственном сервере, он работает ... Tnank снова – user3553866

+0

Не удалось изменить php на сервере, поэтому вместо этого я использовал 'get_class'. Эта ошибка исчезла, но я получил другие, о 'неожиданных '(' 'или' неожиданных (T_VARIABLE) ', когда я попытался поместить их внутри переменной. – DarksteelPenguin

1

Проблема с VisitMaisonInvestisseur::class. class является зарезервированным словом в PHP, поэтому вы не можете использовать его как имя константы.

Если он работает на вашем локальном сервере, он должен быть специфичным для версии. Но я тестировал это в 5.3 и 5.6, и оба они сообщают об ошибке для Classname::class.

+0

спасибо, я изменил версию php на производственном сервере, он работает ... Tnank снова – user3553866

Смежные вопросы