Détermination du nom de la fonction appelante en PHP
Contrairement à des langages tels que Java ou C, PHP ne fournit pas de fonction intégrée spécialement conçue pour récupérer le nom de la fonction ou de la méthode appelante. Cependant, il existe des moyens d'y parvenir en utilisant la fonction debug_backtrace().
Utilisation debug_backtrace()
La fonction debug_backtrace() renvoie un tableau de tableaux contenant des informations sur l'actuel et tous les appels de fonction parent. Pour obtenir le nom de la fonction appelante, accédez au deuxième élément du tableau renvoyé par debug_backtrace(). Cela fournira des informations sur la fonction qui a appelé la fonction actuelle.
Exemple :
echo debug_backtrace()[1]['function'];
Ce code affichera le nom de la fonction appelante.
Optimisation debug_backtrace()
Pour optimiser les performances, vous pouvez limiter le nombre de stack trames renvoyées et omettre les informations inutiles. Par exemple, le code suivant renvoie uniquement le nom de la fonction et omet les index objet et args :
echo debug_backtrace(!DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['function'];
Récupération de la classe de la méthode appelante
Pour déterminer la classe de la méthode appelante, vous devez inspecter l'index de l'objet dans le tableau debug_backtrace(). Cet index contient un tableau avec des informations sur l'objet sur lequel la méthode a été appelée.
Exemple :
$className = debug_backtrace()[1]['object']['class'];
En combinant ces techniques, vous pouvez récupérer à la fois le nom et classe de la fonction ou de la méthode appelante en PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!