我有一个父类和一个子类。在一个父类中,我定义了一个函数f(),并且希望在其中打印子类的名称,该类扩展了调用此函数的父类和子类名称方法。我这样做。使用backtrace_debug确定函数的调用方类和调用方方法。我做错了吗?
abstract class ParentClass {
public function f() {
$backtrace = debug_backtrace();
echo "Class: " . $backtrace[1]['class']) . "\n";
echo "Function: " . $backtrace[1]['function'];
}
}
class ChildrenClass extends ParentClass {
public function some_func() {
$this->f();
}
}
$o = new ChildrenClass;
$o->some_func();
并正确输出我:
Class: ChildrenClass
Function: some_func
的问题是:是我的解决方案适合或有更好的方式来实现这一目标? 我试图使用__CLASS__
和__FUNCTION__
但它总是给我一个父类的类名和函数名。