PHP предоставляет функцию get_class()
, которая не требует параметра, если она вызывается в контексте класса.
Я хочу написать аналогичную функцию, способную извлекать вызывающий объект без его явной передачи. Я пытался использовать debug_backtrace()
, но индекс object
не установлен:
function outer_function() {
var_dump(debug_backtrace());
}
class ExampleObject {
function __construct() {
outer_function();
}
}
new ExampleObject();
Обратите внимание, что не имеет значения, вызывается функция из конструктора или нет; get_class()
также работает, если вызывается внутри конструктора.
Это из функции-члена, потому что если это так,
$this
должно работать нормально.@Ben Нет,
a()
не является членом классаA
. Может быть, мне следует отредактировать код, чтобы избежать недоразумений.Привет, что ты имеешь в виду под объектом? Класс объекта?