@fomiash

PHP 7 — можно ли узнать название класса из функции в котором она была выполнена?

Собственно, есть функция main();

Выполнена в классе
function main(){
// .. вот ЗДЕСЬ нужно узнать класс.
}
class X {
   function index()
   {
    main();
   }
}
(new X)->index();


Как узнать в main название класса, если возможно, и метода (index)?
  • Вопрос задан
  • 1257 просмотров
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега PHP
В общем виде всю цепочку вызова можно получить с помощью debug-backtrace
https://www.php.net/manual/en/function.debug-backt...

В принцпие, очень странная ситуация когда вы вызываете функцию из глобального пространства имен и там вам необходимо источник вызова. Можете более подробно описать задачу, которую вы хотите решить таким способом?

PS Если функция будет анонимной или название класса вам нужно в функции X->index, то все гораздо проще:
class X {
   function index() {
    var_dump(__CLASS__); // X
    $a = function() { 
        var_dump(__CLASS__); // X
    };
    $a();
   }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@svetlov97
__CLASS__ содержит имя класса в котором вызывается
Ответ написан
Комментировать
toxa82
@toxa82
get_class($object)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽