Una soluzione potrebbe essere quella di utilizzare la funzione debug_backtrace
: nel backtrace, questo tipo di informazioni dovrebbe essere presente.
Oppure, come ha sottolineato Gordon in un commento, è anche possibile utilizzare debug_print_backtrace
se si desidera solo produrre tali informazioni e non utilizzarle.
Ad esempio, con temp.php
che contiene questo:
<?php
include 'temp-2.php';
my_function();
e con temp-2.php
che contiene questo:
<?php
function my_function() {
var_dump(debug_backtrace());
}
Calling temp.php
(i.e. the first script)
dal mio browser mi fa questa uscita:
array
0 =>
array
'file' => string '/.../temp/temp.php' (length=46)
'line' => int 5
'function' => string 'my_function' (length=11)
'args' =>
array
empty
In questo caso, ho il nome file "temp.php
", che è quello in cui è stata chiamata la funzione.
Naturalmente, dovrete testare un po 'di più (soprattutto in situazioni in cui la funzione non è nel "primo livello" inclusi file, ma in un file incluso da un altro - non sono sicuro debug_backtrace
aiuterà molto, lì ...); ma questo potrebbe aiutare a ottenere una prima idea ...
fonte
2009-12-20 13:48:09
Potresti fornire maggiori informazioni sul perché e a quale scopo avresti bisogno di tale funzionalità y? Potrebbe essere che ti stai avvicinando a un problema dalla parte sbagliata. – Gordon