77 votes

Pouvez-vous obtenir un nom de méthode à partir d'une méthode en PHP?

Est-il possible de faire quelque chose comme ça?

 public function something() {
    $thisMethodName = method_get_name(); 
}
 

method_get_name() renvoie le nom de la méthode?

128voto

Kevin Vaughan Points 3667

Bien sûr, vous voulez les constantes magiques.

 function myFunction() { print __FUNCTION__." in ".__FILE__." at ".__LINE__."\n"; }
 

En savoir plus dans le manuel php

27voto

thesmart Points 1512

Bien que vous puissiez utiliser la constante magique " __METHOD __", je vous recommande vivement de consulter la réflexion de php. Ceci est supporté en PHP5.

 $modelReflector = new ReflectionClass(__CLASS__);
$method = $modelReflector->getMethod(__METHOD__);
 

Vous pouvez ensuite faire des trucs comme inspecter la signature, etc.

13voto

Jan Molak Points 606

Comme smartj l’a suggéré, vous pouvez essayer la constante magique __METHOD__ , mais souvenez-vous qu’elle renverra une chaîne contenant également le nom de votre classe, par exemple "MyClass :: quelque chose". Utiliser __FUNCTION__ place retournera "quelque chose".

3voto

FractalizeR Points 12887

Je pense que répondre à de telles questions devrait inclure un peu de mentorat. __FUNCTION__ est censé être utilisé à des fins de débogage. L'utiliser dans d'autres cas est discutable. Je suggère à l'auteur de décrire la tâche qu'il veut accomplir avec cette chose "est-ce que je sais comment je m'appelle"? Et nous l'aiderons à inventer une solution plus acceptable.

1voto

timdev Points 25910

Hackish, mais vous pouvez aussi probablement le sortir de la valeur renvoyée par debug_backtrace ().

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X