看看这个代码示例:
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/