我有两个类A和B,A类具有B类对象的属性。当我尝试调用这个B类函数时,phpstorm没有显示任何建议。我这样做
Class A {
public $b;
function __construct($b) {
$this->b = $b;
}
public function someWork() {
$this->b->anotherWork();
}
}
Class B {
public function callA() {
$a = new A($this);
$a->someWork();
}
public function anotherWork() {
echo "do somethings";
}
}
$b = new B();
$b->callA();
键入$ this-> b-> anotherWork()时,phpstorm不会显示任何建议。有没有办法从这个b变量中得到所有B类函数的建议。
答案 0 :(得分:3)
尝试对函数上的变量和/或PHPDoc进行类型提示,它应该工作得很好。
Class A {
/** @var B */
public $b;
/**
* @param B $b
*/
function __construct($b) {
$this->b = $b;
}
public function someWork() {
$this->b->anotherWork();
}
}
答案 1 :(得分:1)
使用类型提示。
在A类中声明你的构造函数:
public function _construct(B $b) {
// do stuff
}
这也允许PHP在运行时键入检查参数,如果错误则报告错误。