以下是Base.php和类Base
的代码/**
* @return ?
*/
public static function withId($id, $class = __CLASS__)
{
$instance = new $class($id);
if ($instance->getId() == self::ID_OF_UNKNOWN_USER) {
$instance = null;
}
return $instance;
}
其他类将扩展此类。我正在使用后期静态绑定来确定在调用withId()之前应该创建谁,并将类名作为$ class传递。
返回的类可以是Base或其任何子级。我如何在phpDoc中标记它?
答案 0 :(得分:1)
这看起来有点像工厂模式,在这种情况下,用户代码不应该知道返回的具体类。通常你会使用抽象类或接口和程序。在这种情况下:
/**
* @return null|Base
*/
无法在docstrings中使用在运行时生成的值(这是静态的)。
答案 1 :(得分:0)
返回的类可以是Base或其任何子级。我如何在phpDoc中标记它?
直接前进。
/**
* @return Base
*/