est-il possible d'avoir une fonction contenir automatiquement le numéro de ligne et le fichier que la fonction a été appelée, p>
Comme si j'appelle mais je ne veux pas avoir à passer Donc, si je les définis comme les paramètres par défaut, proviennent-ils de la définition de la fonction, ou lorsqu'il est appelé de? p> __ ligne __ code> ou __ fichier __ code> Dans la fonction, il utilisera la ligne et le fichier La définition de la fonction est entrée. P>
__ ligne __ code> et __ fichier __ code> dans la fonction à chaque fois. P>
4 Réponses :
faire ce que vous suggérez ne semble pas fonctionner.
Vous pouvez le faire comme ça, mais je ne sais pas pourquoi vous voulez le faire et qu'il n'y a pas une meilleure approche de ce que vous essayez Atteindre - voir Réponse de la Crikken . P> < Pré> xxx pré> p>
La seule façon d'utiliser débog_backtrace () code> , mais comme nom dit: c'est pour le débogage. Votre code devrait
Puis-je vous demander pourquoi c'est si mauvais?
(1) debug_backtrace a beaucoup de frais généraux (2) votre comportement de fonction devient imprévisible pour d'autres développeurs (un décorateur ou des méthodes privées / protégées / protégées / protégées / protégées), selon les circonstances, seraient des solutions beaucoup plus reconnaissables) (3) la La fonction éclate de son auto confinement / indépendance, qui concerne le signe le plus sûr, il y a quelque chose qui ne va pas avec la conception.
@Hailwood dans l'environnement de production Tous les détails intérieurs Nitty-Gritty doivent être enregistrés, non affichés à l'utilisateur. C'est ce que veut écrit. Et à des fins de débogage, il existe une fonction appelée trigger_error code> qui ajoutera heureusement fichier et ligne automatiquement, sortie du message d'erreur en fonction des paramètres de traitement des erreurs actuelles - à afficher ou à un fichier journal. très utile
Si vous souhaitez utiliser ces informations dans une sorte de message d'erreur, il existe une fonction La plupart des fonctions neat de cette fonction se comportent en fonction des paramètres de traitement des erreurs actuelles: P> trigger_error () code> qui augmentera une erreur native PHP, donc, il sera donc montré à une manière habituelle PHP - avec nom de fichier, numéro de ligne et texte fourni. ini_set('display_errors',0);
ini_set('log_errors',1);
trigger_error("Horrible bug found!");
C'est si tard mais peut-être peut-être peut-être utile, vous pouvez utiliser get_called_class (), pour le nom de la classe qui est appelé, et ne passe pas comme un paramètre inscrit à classe for forte>. P>.