假设我正在构建一个基类,这个基类将由which类扩展。因此,基类称为Base,子类可以是Child1、Child2等。
在基类的构造函数中,如何获取Child1/Child2的值?
这一切都是使用PHP实现的
发布于 2009-02-11 21:27:45
基类真的不应该依赖于关于子类的信息
回答你的问题:
class base {
    public function __construct() {
        print "Class:" . get_class($this) . "\n";
    }
}
class child extends base{
    public function __construct() {
        parent::__construct();
    }
}
$c = new child();仅供将来参考--这可以在使用get_called_class()的静态上下文中获得,但这只在PHPP5.3中可用
发布于 2009-02-11 21:26:15
只需调用get_class($this) -但是请注意,基类方法并不需要根据使用它的派生类来改变其行为。这就是派生类的全部意义:)
发布于 2009-02-11 21:23:50
编辑:不知道get_class,忽略这个;)
您可以尝试使用__CLASS__,但它可能无法正常工作。
一种解决方法是将类名指定为基类的属性。
回显编辑:这不起作用(我使用了以下代码)(){ __CLASS;}}
class b extends a {}
$b = new b;我建议将$b的名称作为参数传递给A,例如:
<?php
class a {
    protected $name;
    public function __construct() {
        echo $this->name;
    }
}
class b extends a {
    protected $name = __CLASS__;
}
$b = new b;https://stackoverflow.com/questions/538863
复制相似问题