在PHP中获取子类的名称

Cli*_*ote 1 php oop

让我们说我正在建立一个基础类,将由儿童班延伸.因此,基类被称为Base可以和孩子Child1,Child2等等.

在基类的构造函数中,如何获取Child1/Child2的值?

这都是使用PHP

Pau*_*xon 10

简单地调用get_class($ this) - 请注意,基类方法在改变其行为方面没有真正的业务,具体取决于哪个派生类正在使用它.这是导出一个类的全部意义:)


gnu*_*nud 10

基类应该永远不依赖于有关子类的信息---

回答你的问题:

class base {
    public function __construct() {
        print "Class:" . get_class($this) . "\n";
    }
}

class child extends base{
    public function __construct() {
        parent::__construct();
    }
}
$c = new child();
Run Code Online (Sandbox Code Playgroud)

仅供将来参考 - 这可以使用get_called_class()在静态上下文中实现,但这仅适用于PHP> = 5.3