Бортовой журнал Ктулху

PHP получить имя вызывающего метода/функции

Ситуация описана типичная, ответов в интернете море, будет еще один.

Бывают такие ситуации, когда необходимо понять, какая функция или метод класса вызывает текущую функцию - метод.

Например, есть функция girl(), которая вызывает метод erection(). Вызываемый метод работает с какими-то данными. Вызывающих методов много (wife(), girl(), lover()), работая с некоторыми данными, нужно понимать, какой именно метод вызывает erection().

Для этого вводим в метод erection() такую стандартную функцию как debug_backtrace().

function girl() {
 child();
}
function erection() {
 echo debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2)[1]['function'];
}

 

Также, что бы получить имя текущего метода, можно использовать магические константы: __METHOD__ или __FUNCTION__