我想使用来自超类的公共方法创建子类的实例:
class A{
public function instantiate_object(){
$object = new self;
return $object;
}
}
class B extends A{
public function do_something(){
echo 'do something';
}
}
$b = new B;
$instance = $b->instantiate_object(); // it returns instance of A not B;
$instance-> do_something();
它出现此错误“在第17行的C:\ wamp \ www \ index.php中调用未定义的方法A :: do_something()”。 所以我需要一种除了“self”之外的方法在A类的instantiate_object()中使用,以便在我使用这个子类调用此方法时从子类创建实例,提前感谢。