PHP 5 – Classes – La méthode n’existe pas ? Utilisez une méthode par défaut

Aujourd’hui, juste un petit article sur des questions qui reviennent souvent : « comment utiliser une méthode de ma classe, par défaut, si celle que j’appelle n’existe pas ? ». Pour se faire, il va falloir utiliser une des méthodes dites « magiques » : __call (vous notez le double « _ »). Il peut y avoir de multiples raisons d’utiliser une telle méthode, moi même je dois l’utiliser pour certains éléments de mon Framework.

php

Alors, comment l’utiliser ? C’est tout simple. En temps normal, ce code vous renvoi une erreur :

[pastacode lang= »php » manual= »%3C%3Fphp%20class%20maClasse%7B%20%0A%09%0A%09public%20function%20uneMethode(%24arguments)%7B%20%0A%09%09%0A%09%09echo%20’Bienvenue%20LudiKreation%20!’%3B%20%0A%09%0A%09%7D%20%0A%0A%7D%20%0A%0A%24objet%20%3D%20new%20maClasse()%3B%20%0A%0A%24objet-%3EuneAutreFonction(‘argument’)%3B%20%3F%3E » message= » » highlight= » » provider= »manual »/]

Il peut arriver que vous souhaitiez appeler une méthode par défaut si une méthode appelée n’existe pas et c’est à ce moment là que « __call » fait son entrée !
Revoyons notre précédent code :

[pastacode lang= »php » manual= »%3C%3Fphp%20%0A%0Aclass%20maClasse%7B%20%0A%09%0A%09public%20function%20__call(%24methode%2C%20%24arguments)%7B%20%0A%09%09%0A%09%09echo%20’Pourquoi%20appeler%20la%20m%C3%A9thode%20%3A%20′.%24methode.’%20avec%20les%20arguments%20%3A%20′.implode(‘%2C%20’%2C%20%24arguments).’%20%3F%20Elle%20n%5C’existe%20pas%20!!’%3B%20%0A%09%0A%09%7D%20%0A%09%0A%09public%20function%20uneMethode(%24arguments)%7B%20%0A%09%09%0A%09%09echo%20’Bienvenue%20LudiKreation%20!’%3B%20%0A%09%0A%09%7D%20%0A%0A%7D%20%0A%0A%24objet%20%3D%20new%20maClasse()%3B%20%0A%0A%24objet-%26gt%3BuneAutreFonction(‘argument’)%3B%0A%0A%3F%3E » message= » » highlight= » » provider= »manual »/]

 

Cette fois vous aurez comme résultat :

[pastacode lang= »markup » manual= »Pourquoi%20appeler%20la%20m%C3%A9thode%20%3A%20uneAutreFonction%20avec%20les%20arguments%20%3A%20argument%20%3F%20Elle%20n’existe%20pas%20!! » message= » » highlight= » » provider= »manual »/]

Au lieu d’une erreur.

Vous l’aurez compris, __call récupère le nom de la méthode appelée en premier argument et en deuxième, un tableau des arguments passés.

Voilà, maintenant vous savez comment utiliser une méthode de classe par défaut en PHP 🙂

Bon code à tous !

Articles pouvant vous intéresser :

Author: Franck Pertegas

Share This Post On

Trackbacks/Pingbacks

  1. PHP – Fonction – Nettoyer une chaîne de caractères pour garantir une URL | LudiBlog - [...] PHP 5 – Classes – La méthode n’existe pas ? Utilisez une méthode par défaut [...]

Submit a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *