Задать вопрос
paulenot
@paulenot
IT Issue

Какая функция вызвала эту функцию в PHP?

Как определить, кто вызвал функцию printer()?
function printer(){
	$executer = '?'; // кто вызвал принтер?
	echo 'Функцию printer() вызвал '.$executer.'()';
}

function executer1(){
	printer();
}

function executer2(){
	printer();
}
  • Вопрос задан
  • 757 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Skillbox
    PHP-разработчик. Базовый уровень
    3 месяца
    Далее
Решения вопроса 2
Vamp
@Vamp
Это можно определить при помощи функции debug_print_backtrace
Ответ написан
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
$executer = debug_backtrace()[1]['function']  ?? 'direct call';


или чуть более расширенный вариант

$class = debug_backtrace()[1]['class'] ?? '';
$executer = ($class ? "$class::" : "") . (debug_backtrace()[1]['function']  ?? 'direct call');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы