2
Можно создать дубликат:
Caller function in PHP 5?PHP, так или иначе, чтобы узнать, какой метод/класс называется другим?
У меня есть несколько объектов, которые расширяют друг друга, и вызывает различные вспомогательные методы. Мне интересно, есть ли способ определить, какой метод называется другим. вот пример:
class Foo {
function whereAmICalled() {
$calling_method = '' //would like to get func_caller here when code is executed
$calling_class = '' //would like to get 'Bar' here when code is executed
}
}
class Bar extends Foo {
function func_caller() {
$this->whereAmIcalled();
}
}
$bar = New Bar();
$bar->func_caller();
Что-то вроде debug_backtrace()? Я не совсем понимаю, что вы хотите сделать именно так. –
Дублируйте, действительно, с замечанием о том, что эта информация обычно указывает на плохой дизайн, почти фундаментальный принцип OO - вам не нужно и не заботится о том, какая функция/класс вызывает текущий метод. – Wrikken
Если вам нужно знать вызывающего абонента, тогда передайте эту информацию вызываемому абоненту, а не позвольте вызываемому абоненту пропустить через отладочную обратную линию. – Gordon