代码之家  ›  专栏  ›  技术社区  ›  Berk Kaya

扩展类的PHPDoc不同返回类型

  •  2
  • Berk Kaya  · 技术社区  · 8 年前

    我创建了自己的DB模型结构,类似于Laravel。我一直面临两个问题。

    我有一个 Model User 类扩展 模型 . 我想把它还给你 get() 方法返回扩展的类的类型。

    这可能吗?

    Class Model extends DB {
        /**
         * @return AnyClassThatExtended
         */
        function get()
        {
        }
    }
    
    Class User extends Model {
        function test() {
            $user->get(); // I want it to return User type of object
        }
    }
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   Justinas    8 年前

    你应该使用

    private static $instance;
    
    /**
     * return static
     */
    public function get() {
        if (is_null(self::$instance)) {
            self::$instance = new static();
        }
    
        return self::$instance;
    }
    

    因为你正在返回当前的课堂(如果我理解正确的话)

    PHPStorm可能无法识别它