请看下面的代码示例:
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中编辑时,我收到警告“在类basetype中找不到方法methodb”。我使用预先存在的代码基,不能更改基类。那么我该怎么做才能消除这个警告呢?
最佳答案
您可以重写$membera
中的class BB
,并给它一个具有派生类型的新文档块。
class bb extends aa {
/**
* @var extendtype
*/
protected $membera;
public function __constructor() {
$this->membera = new extendtype();
}
public function dosomething() {
$this->membera->methodb();
}
}