可能重复:
PHP 中的后期静态绑定到底是什么?
我想构建一个抽象类,它将使用静态函数实例化它的子类。
<?php
class A
{
protected $value;
public function __construct($value)
{
$this->value = $value;
}
public static function create($value)
{
/* A must not know about B!
* I give that example for the context understanding */
return **new B**($value);
}
}
class B extends A
{
}
当然 A不知道 B .. 我不知道这是否可能,我不想在我所有的 170 个子类中实现 create 函数......
你认为我应该使用一个工厂来返回我的 170 个类之一的实例吗?这很麻烦,而且不太可维护。