OVH Cloud OVH Cloud

static function et php5

3 réponses
Avatar
Jean-Yves BURGAUD
Bonjour,

j'ai développé une classe utilitaire contenant 4 fonctions statiques.

class utility_file
{
static function get_name()
{
<code>
}
<etc>
}
}


Cela fonctionne très bien en local avec wamp sous windows avec php 5.0.2

Par contre, sur le web, avec php 5.0.3, j'ai le message :


Parse error: parse error, unexpected T_STATIC, expecting T_OLD_FUNCTION
or T_FUNCTION or T_VAR or '}'



J'ai l'impression que l'erreur vient du mot clé "static" car l'erreur se
produit avant même l'utilisation de la classe, comme si le parser ne
voulait pas de ce type d'écriture.

je pourrais bien sûr modifier le pattern pour enlever le "static" mais
j'aimerais bien comprendre l'erreur.


Merci


Jean-Yves.

3 réponses

Avatar
Marc

j'ai développé une classe utilitaire contenant 4 fonctions statiques.
Cela fonctionne très bien en local avec wamp sous windows avec php 5.0.2

Par contre, sur le web, avec php 5.0.3, j'ai le message :

Parse error: parse error, unexpected T_STATIC, expecting T_OLD_FUNCTION
or T_FUNCTION or T_VAR or '}'


regarde s'il s'agit bien de php5 sur le serveur avec phpinfo().

Avatar
Jean-Yves BURGAUD
Marc wrote:

j'ai développé une classe utilitaire contenant 4 fonctions statiques.
Cela fonctionne très bien en local avec wamp sous windows avec php 5.0.2

Par contre, sur le web, avec php 5.0.3, j'ai le message :

Parse error: parse error, unexpected T_STATIC, expecting
T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}'



regarde s'il s'agit bien de php5 sur le serveur avec phpinfo().


Bonjour,


Et oui la réponse est bien là et je remercie Marc.

J'avais bien évidemment testé la version php avec phpinfo() mais je ne
l'ai pas fait correctement.

En effet, je suis hébergé chez Free et il faut savoir que suivant les
serveurs, les fichiers "toto.php" sont soit exécutés sous php 4.3.10
soit sous php 5.0.3 (je ne sais pas s'il y a encore d'autres versions en
activité).

J'ai testé phpinfo() sur une URL d'un serveur sous php 5 alors que j'ai
installé mon script sur un serveur encore sous php 4.

Pour résoudre le problème, il faut mettre systématiquement le suffixe
'php5' (exemple : toto.php5).


Encore merci pour cette réponse qui vient de me débloquer (c'était
pourtant évident mais parfois on oublie les évidences).



Jean-Yves


Avatar
Marc

En effet, je suis hébergé chez Free et il faut savoir que suivant les
serveurs, les fichiers "toto.php" sont soit exécutés sous php 4.3.10
soit sous php 5.0.3 (je ne sais pas s'il y a encore d'autres versions en
activité).


si tu avais precisé un peu plus le probleme, la reponse aurait ete
encore plus rapide.