在PHP中get_called_class(),get_class($this)在实例中使用和之间的区别是什么?
例:
class A {
function dump() {
echo get_called_class();
echo get_class($this);
}
}
class B extends A {}
$A = new A();
$B = new B();
$A->dump(); // output is 'AA'
$B->dump(); // output is 'BB'
Run Code Online (Sandbox Code Playgroud)
这种情况有什么不同吗?
我什么时候应该使用其中一个get_called_class()或get_class($this)?
Ja͢*_*͢ck 22
在这种情况下,没有区别,因为$this始终指向使用其解析类名的正确实例get_class().
该函数get_called_class()适用于静态方法.当重写静态方法时,此函数将返回类名,该类名为正在调用的当前方法提供上下文.