6
votes

Nom de la fonction ($ param, $ ligne = __line__, $ file = __file__) {};

est-il possible d'avoir une fonction contenir automatiquement le numéro de ligne et le fichier que la fonction a été appelée,

Comme si j'appelle __ ligne __ ou __ fichier __ Dans la fonction, il utilisera la ligne et le fichier La définition de la fonction est entrée.

mais je ne veux pas avoir à passer __ ligne __ et __ fichier __ dans la fonction à chaque fois.

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?


0 commentaires

4 Réponses :


6
votes

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 . < Pré> xxx


0 commentaires

5
votes

La seule façon d'utiliser débog_backtrace () , mais comme nom dit: c'est pour le débogage. Votre code devrait NON Joindre n'importe quel sens ou fonctionnalité de production basé sur l'endroit où / quand on l'appelle.


3 commentaires

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 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



-1
votes

Si vous souhaitez utiliser ces informations dans une sorte de message d'erreur, il existe une fonction 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.

La plupart des fonctions neat de cette fonction se comportent en fonction des paramètres de traitement des erreurs actuelles: P>

ini_set('display_errors',0);
ini_set('log_errors',1);
trigger_error("Horrible bug found!");


0 commentaires

0
votes

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 . .


0 commentaires