unexpected 'class' (T_CLASS) only on remot

2019-04-04 18:46发布

问题:

This question already has an answer here:

  • PHP parse/syntax errors; and how to solve them? 16 answers

We are developping a CRM.

In local, I have no problem, but in remote (OVH), I have this error message :

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

This is the code :

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

The version of PHP on remote host (OVH) is 5.4.38

回答1:

Using class as a name of a constant is available in PHP 5.5 only.

To get the class name you can replace VisiteMaisonInvestisseur::class with get_class(new VisiteMaisonInvestisseur).

Or change the name of the constant. For example: VisiteMaisonInvestisseur::class_name.



回答2:

The problem is with VisitMaisonInvestisseur::class. class is a reserved word in PHP, so you can't use it as the name of a constant.

If it works on your local server, it must be version-specific. But I've tested this in 5.3 and 5.6, and they both report an error for Classname::class.



标签: php oop