Bonjour,

Je suis vraiment débutant en POO et je rencontre un problème sur la méthode __callStatic pour la version PHP 5.3.
J'ai acquis un site il y a quelques temps, il fonctionne très bien en PHP 5.2.

M'apprêtant à changer de serveur, j'ai installé PHP 5.3 mais je rencontre des problèmes.

Une fonction __callStatic avait été développée pour prévoir un changement de version PHP.
Le problème, c'est qu'elle semble être mal développée et génère l'erreur suivante :

Fatal error: Method MaClasse::__callstatic() must take exactly 2 arguments
En effet, elle reçoit 3 arguments.
Voici la méthode en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public static function __callStatic($className, $name, $arguments) {
		if(method_exists($className, $name) && is_callable(array($className, $name))) {
			return call_user_func_array(array($className, $name), $arguments);
		} else {
			throw new BadMethodCallException("La méthode \"$name\" n'existe pas ou n'est pas appelable depuis ce contexte.");
		}
	}
Tous les appels à cette méthode sont donc soumis avec 3 paramètres...

Comment faire pour la rendre fonctionnelle et récupérer $className dans la méthode ? (toutes les classes sont abstraites)

Merci.