当前类的子类的PHP docstring@return类型

当前类的子类的PHP docstring@return类型,php,Php,父类的静态方法返回子类的实例(在编写时尚未确定),其规范@return类型是什么?例如: <?php class Thing { /** * Do something * * @return ??? Instance of some new class. */ public static function create_subclass($class) {

父类的静态方法返回子类的实例(在编写时尚未确定),其规范@return类型是什么?例如:

<?php

    class Thing {

        /**
         * Do something
         *
         * @return ???  Instance of some new class.
         */
        public static function create_subclass($class) {
            return new $class();
        }

    }

    class Person extends Thing {}

    $person = Thing::create_subclass('Person');

?>

看起来这不应该是@return self,因为它返回的是self的子类,指定所有可能的返回类都是愚蠢的。有什么想法吗?

你可以使用@return Thing或@return Person | AnotherClass | AnotherClass

我不确定你为什么想要有一个父类来创建它的子类的新实例?@MichaelLeaCrawford,因为静态构造函数想要根据它收到的参数来决定实例化哪个子类。为这个做资料。在Objective-C中,苹果的库一直遵循这个理念——无论何时构造NSString、NSArray或NSDate,实际上都会得到一个私有子类的实例。同意@return Thing