在phpDoc中,如何编写一个我不知道的类还将被返回?

时间:2011-01-22 00:26:37

标签: php phpdoc

以下是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中标记它?

2 个答案:

答案 0 :(得分:1)

这看起来有点像工厂模式,在这种情况下,用户代码不应该知道返回的具体类。通常你会使用抽象类或接口和程序。在这种情况下:

/**
 * @return null|Base
 */

无法在docstrings中使用在运行时生成的值(这是静态的)。

答案 1 :(得分:0)

  

返回的类可以是Base或其任何子级。我如何在phpDoc中标记它?

直接前进。

/**
 * @return Base
 */