Maison > développement back-end > tutoriel php > Comment déterminer le nom de la fonction appelante en PHP ?

Comment déterminer le nom de la fonction appelante en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-04 09:53:10
original
200 Les gens l'ont consulté

How to Determine the Calling Function's Name in PHP?

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'];
Copier après la connexion

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'];
Copier après la connexion

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'];
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal