phpdoc如何声明返回类型是调用者?

时间:2015-12-30 09:26:28

标签: php phpdoc

例如:

class A {
    static function model () {
        $class = static::class;
        return new $class;
    }
}

class B extends A {
    var $var;
}

我可以告诉编辑代码B::model()返回类型 B 调用者而不是其他人吗?

我试过@return self不行!

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码:

class A {
    public function model () {
        $class = static::class;
        return new $class;
    }
}

class B extends A {
    /**
     * @return B
     */
    public function model(){
        return parent::model();
    }
    var $var;
}

答案 1 :(得分:0)

class A {
    /**
     * @return static
     */
    static function model () {
        $class = static::class;
        return new $class;
    }
}

class B extends A {
    var $var;
}

您也可以尝试@return $this,它可以在PHPStorm中使用,虽然在语义上它应该仅在非静态上下文中使用