派生类中 PHPDoc 中的 PHP 类型提示

标签 php phpstorm phpdoc type-hinting

看看这个代码示例:

class basetype {
    public function method() {
        return false;
    }
}

class extendtype extends basetype {
    public function methodb() {
        return true;
    }
}

class aa {
    /**
     * @var basetype
     */
    protected $membera;
}

class bb extends aa {
    public function __constructor() {
        $this->membera = new extendtype();
    }

    public function dosomething() {
        $this->membera->methodb();
    }
}

在 PHPStorm 中编辑时,我收到警告“在类基类型中找不到方法 methodb”。我使用预先存在的代码库,无法更改基类。那么我该怎么做才能消除这个警告呢?

最佳答案

您可以覆盖 class BB 中的 $membera 并为其提供一个具有派生类型的新文档 block 。

class bb extends aa {
    /**
     * @var extendtype
     */
    protected $membera;

    public function __constructor() {
        $this->membera = new extendtype();
    }

    public function dosomething() {
        $this->membera->methodb();
    }
}

关于派生类中 PHPDoc 中的 PHP 类型提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32910529/

相关文章:

php - 将一个文件复制到一个文件夹中的所有文件夹中?

接口(interface)上的 phpUnit 代码覆盖率显示没有成功

php - mb_strtolower 和 utf8 字符串

php - 为什么 cURL 会进入无限循环?

PhpStorm 2016.2 : How to add theme

javascript - 使用 phpDocumentor 解析 Javascript 文件

php - 在 PHP 中模拟泛型类

PHPDoc 和 __callStatic

javascript - 如何在 PHP 上促进两个用户之间的无轮询消息传递

php - 在自己的包中调试断点 : Symfony 2. 7 + PHPStorm 9 + Xdebug 2.2