我一直在寻找一种方法来调用类似于“parent::_ construct”但用于类本身的类的构造函数(类似于“self:: _construct”,尽管这不起作用)。为什么要这样做?考虑以下(这不起作用,顺便说一句)......
class A {
var $name;
function __construct($name) {
$this->name = $name;
}
function getClone($name) {
$newObj = self::__construct($name);
return $newObj;
}
}
class B extends A {
}
在实际实现中,还有其他属性可以区分 B 类和 A 类,但两者都应该具有“getClone”方法。如果在 A 类的对象上调用它应该产生另一个 A 类的对象,如果在 B 类上调用它应该产生另一个 B 类的对象。
当然,我可以通过在 B 类中重写“getClone”并将类名硬编码到方法中来做到这一点(即,$newObj = new B($name)),但是只对方法进行编码会更好一次,告诉它实例化自己类的对象,无论该类是什么。
PHP会让我这样做吗?