[英]Functionality of PHP get_class
谁能解释为什么get_class
函数在下面返回不同的值? 具体来说,当在基类中调用它并且在派生类中调用它时应该做什么?
abstract class bar {
public function __construct()
{
var_dump(get_class($this)); //prints 'foo'
var_dump(get_class()); // prints 'bar'
}
}
class foo extends bar {
}
new foo;
在文档中似乎已经很好地解释了,但是这里是:
get_class($instance)
返回$instance
实例的类,无论您在何处调用它。 get_class($this)
行为相同,返回$this
的类。
get_class()
返回定义了调用它的方法的类,因此它在您的示例中返回bar
,因为这是定义__construct()
地方(即使您是通过继承调用它的)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.