Eine Lösung könnte sein, die debug_backtrace
Funktion zu nutzen: in der Backtrace, diese Art von Informationen sollte vorhanden sein.
Oder, wie Gordon in einem Kommentar darauf hingewiesen hat, können Sie auch verwenden, wenn Sie nur diese Informationen ausgeben und nicht damit arbeiten möchten.
Zum Beispiel mit temp.php
diese enthalten:
<?php
include 'temp-2.php';
my_function();
und mit temp-2.php
diese enthalten:
<?php
function my_function() {
var_dump(debug_backtrace());
}
temp.php
(i.e. the first script)
von meinem Browser aufrufen wird mir diese Ausgabe:
array
0 =>
array
'file' => string '/.../temp/temp.php' (length=46)
'line' => int 5
'function' => string 'my_function' (length=11)
'args' =>
array
empty
Dort habe ich den Dateinamen "" - das ist derjenige, in dem die Funktion aufgerufen wurde.
Natürlich werden Sie ein bisschen mehr (vor allem in Situationen testen müssen, wo die Funktion nicht in der „ersten Stufe“ ist Datei enthalten, aber in einer Datei durch eine andere enthalten - nicht sicher debug_backtrace
wird viel helfen, da ...); aber dies könnte Ihnen helfen, einen ersten Eindruck bekommen ...
Könnten Sie bitte mehr Informationen darüber geben, warum und zu welchem Zweck Sie solche Funktionen benötigen? y? Könnte sein, dass Sie ein Problem vom falschen Ende her nähern. – Gordon