2015-04-25 16 views
8

Stiamo sviluppando un CRM."classe" imprevista (T_CLASS) solo su remoto (non in locale)

Nel locale, non ho alcun problema, ma in remoto (OVH), ho questo messaggio di errore:

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

Questo è il codice:

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

La versione di PHP su remoto host (OVH) è 5.4.38

+0

'class' è una parola riservata. Non dovresti usarlo come nome di una proprietà. – Barmar

risposta

15

L'utilizzo di class come nome di una costante è disponibile solo in PHP 5.5.

Per ottenere il nome della classe è possibile sostituire VisiteMaisonInvestisseur::class con get_class(new VisiteMaisonInvestisseur).

Oppure modificare il nome della costante. Ad esempio: VisiteMaisonInvestisseur::class_name.

+0

grazie, ho cambiato la versione php sul server di produzione, funziona ... Grazie ancora – user3553866

+0

Non posso cambiare il versione php sul server, quindi ho usato 'get_class'. Questo errore è scomparso, ma ne ho ricavati altri, su "inatteso" ("o" inatteso (T_VARIABLE) "quando ho provato a inserirlo in una variabile. – DarksteelPenguin

1

Il problema è con VisitMaisonInvestisseur::class. class è una parola riservata in PHP, quindi non puoi usarla come nome di una costante.

Se funziona sul server locale, deve essere specifico per la versione. Ma ho provato questo in 5.3 e 5.6, ed entrambi riportano un errore per Classname::class.

+0

grazie, ho cambiato la versione php sul server di produzione, funziona ... Grazie ancora – user3553866

Problemi correlati