Une fonction peut-elle retourner le numéro de la ligne qui l'appelle ?

Une fonction peut-elle retourner le numéro de la ligne qui l'appelle ? - PHP - Programmation

Marsh Posté le 05-01-2006 à 11:38:33    

Bonjour à tous,
 
Une question que j'avais déjà posée ici il y a quelques temps m'a permis de savoir que la constante __LINE__ permettait de retourner le numéro de la ligne en cours...
 
Maintenant ce que j'aimerais savoir, c'est s'il existe un moyen pour qu'une fonction retourne le numéro de la ligne qui l'a appellée.
 
Exemple :
 

Code :
  1. function test() {
  2.     return numero_ligne_appelante,
  3. }
  4. echo test();


 
Il faudrait que echo test(); retourne "5" dans ce cas.
 
Alors bien evidemment on pourrait faire passer la constante __LINE__ en paramètre, mais il se peut qu'on execute + de 50 fonctions dans une même page ... donc bon, il y a sûrement une fonction toute faite pour ça non ? :D


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 05-01-2006 à 11:38:33   

Reply

Marsh Posté le 05-01-2006 à 11:40:58    

non, ça n'a aucun sens


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 05-01-2006 à 11:47:48    

Ben si... je suis toujours sur mon moteur de template...
Exemple :

Code :
  1. blabla
  2. setVar('MAVAR1', 'Valeur');
  3. blabla
  4. blabla
  5. setVar('MAVAR2', 'Valeur');
  6. blabla
  7. blabla
  8. blabla
  9. setVar('MAVAR3', 'Valeur');


 
Admettons que MAVAR2 n'existe pas, j'aimerais que ma fonctione donne un message d'erreur de ce genre :
 

Citation :


Erreur à la ligne 5 : la variable "MAVAR2" n'existe pas dans le template "INDEX"


 
Parce que si on assigne 500 variables (exagération mais peu importe), c'est quand même plus rapide pour aller directement à la ligne concernée.


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 05-01-2006 à 12:31:35    

Je pense que ce que tu cherches, c'est "debug_print_backtrace" qui n'est disponible qu'a partir de php5 : http://www.nexen.net/docs/php/anno [...] ktrace.php
 
Si tu cherches plus d'informations sur le débugguage, jéte un oeuil sur le contenu de la section 8.31 de la documentation php : http://www.nexen.net/docs/php/anno [...] orfunc.php

Reply

Marsh Posté le 05-01-2006 à 14:32:25    

omega2 a écrit :

Je pense que ce que tu cherches, c'est "debug_print_backtrace" qui n'est disponible qu'a partir de php5 : http://www.nexen.net/docs/php/anno [...] ktrace.php
 
Si tu cherches plus d'informations sur le débugguage, jéte un oeuil sur le contenu de la section 8.31 de la documentation php : http://www.nexen.net/docs/php/anno [...] orfunc.php


 
Mésségénial !! [:alucard]  
 
La fonction parfaite est debug_backtrace(); Elle retourne un tableau et est dispo à partir de PHP 4.3.0 :)
 
Elle retourne ça :


Array
(
    [0] => Array (
            [file] => C:\Program Files\wamp\www\byscripts\byste3\index.php5    // Le fichier depuis lequel la fonction a été appelée
            [line] => 5                                                        // Le numéro de la ligne qui a appelé la fonction
            [function] => loadTemplate                                         // Le nom de la fonction appelée
            [class] => byste3
            [object] => byste3 Object (
                    ........                                                   // Diverses infos
                    )
            [type] => ->
            [args] => Array (
                    [0] => index.tpl
                    [1] => index
                    )
            )
)


 
 
Merci bcp !


---------------
Gamertag: CoteBlack YeLL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed