Sie werden nicht viele Optionen haben. Die andere Option (die in der anderen Frage gestellt wurde), um den Anrufer zu zwingen, es Informationen mit dem Funktionsaufruf (mit PHP magischen Konstanten) provde:
callFunction(1, 2, 3, __FUNCTION__)
callFunction(1, 2, 3, __CLASS__, __METHOD__)
callFunction(1, 2, 3, $this, __METHOD__)
or
$class = new ReflectionClass(__CLASS__);
$method = $class->getMethod(__METHOD__);
callFunction(1, 2, 3, $method) // $method would be a ReflectionMethod obj
eine mögliche Alternative wäre. Aber es ist
- Verschleiern Code
- können „manipuliert“ werden, die den Code von
callFunction
verursachen könnten scheitern, und es wäre sehr schwierig sein, diese Fehler aufzuspüren.
Wenn ich an deiner Stelle wäre, würde ich versuchen, es in einer Funktion zu vermeiden, die im gesamten Code verwendet wird. Verwenden Sie debug_backtrace
(auch wenn es "langsam" sein könnte). Lesbarer Code gewinnt schneller Code.
Warum müssen Sie wissen, von wo aus die aktuelle Funktion aufgerufen wurde? Wie die verknüpfte Frage besagt, sollten Sie Ihr Design überdenken, wenn Ihre Funktionen wirklich wissen müssen, wer sie angerufen hat. – Gumbo
ich habe eine Ansicht Klasse und möchte nicht den gesamten Pfad der Ansicht angeben ... sondern nur den Namen und die zu der Ansicht führen, die sich im selben Verzeichnis wie die Ansicht befindet, die die Klasse aufgerufen hat. –
Es klingt, als ob Sie dabei sind, Ihren Fuß abzuschießen. Tu das nicht. – troelskn