Est-ce possible?
function test()
{
echo "le nom de la fonction est test";
}
Est-ce possible?
function test()
{
echo "le nom de la fonction est test";
}
La manière précise est d'utiliser la __FUNCTION__
constante magique prédéfinie.
Exemple:
class Test {
function MethodA(){
echo __FUNCTION__;
}
}
Résultat: MethodA
.
FONCTION fonctionne également pour les fonctions non liées à une classe. Testé sur PHP 7.0.8.
@KiranReddy Il y a également une constante magique pour cela : __CLASS__
. Ou vous pouvez utiliser get_class($this)
.
Vous pouvez utiliser les constantes magiques __METHOD__
(inclut le nom de la classe) ou __FUNCTION__
(simplement le nom de la fonction) selon qu'il s'agit d'une méthode ou d'une fonction... =)
MÉTHODE inclut le nom de la classe, FONCTION est simplement cela. Ce dernier est également disponible dans la méthode d'une classe.
La méthode ne renvoie pas nécessairement le nom de la classe; si l'endroit où elle est appelée se trouve à l'intérieur d'un trait, vous obtiendrez le nom du trait. Si vous voulez obtenir le nom de la classe de l'instance utilisée, utilisez get_class($this)
.
Ceci est incroyablement intensif en ressource. Utiliser FONCTION ou MÉTHODE est bien plus efficace. debug_backtrace() est génial si vous avez besoin de plus que juste le nom de la fonction.
C'EST LA SEULE MANIÈRE CORRECTE que j'ai trouvée !!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!! !!!!!!!!!!!!!! car __FUNCTION__
retourne le nom de la fonction parent (lorsque la fonction actuelle est incluse dans la fonction parent)
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.
2 votes
Juste par curiosité, quand est-ce qu'on a besoin de cela? Est-il possible de créer des fonctions dont on ne connaît pas le nom?
39 votes
Un exemple possible serait de journaliser votre exécution. Si vous écrivez "J'ai eu une erreur dans " . FONCTION dans un fichier journal ou autre chose. De cette façon, si le nom de la fonction est modifié, vous n'avez pas à vous soucier de la personne se souvenant de changer le message de journal.
1 votes
A eu besoin de ceci pour le journalisation! merci de demander :)
0 votes
Cela est également utile pour appeler une fonction récursive.
2 votes
Aussi utile si vous voulez utiliser le nom de la fonction à l'intérieur de la fonction (pour un autre usage). Comme pour construire des liens en fonction de la fonction, etc. (par exemple:
function name1()
puis utiliser name1 à nouveau à l'intérieur), cela permettrait de gagner beaucoup de temps si vous avez le même modèle pour de nombreuses fonctions.0 votes
Ceci est également utile pour les URL
1 votes
@DisgruntledGoat: il est utile si vous créez des fonctions manuellement et ne voulez pas éditer le message d'erreur pour chaque fonction. L'ajouter au message d'erreur signifie que vous avez moins de travail.
0 votes
Utile si vous avez beaucoup de fonctions similaires (mais non identiques) mais avez besoin d'un journal personnalisé pour chaque, par exemple:
error_log('myquery.php?foo:' . pg_last_error()
vous pouvez faire quelque chose comme:error_log(__FILE__ . '?' . __FUNCTION__ . ':' . pg_last_error())