phpstorm 没有给出建议

phpstorm doesn't give suggestion

我有两个 classes A 和 B,A class 有 属性 个 B class 对象。当我尝试调用这个 B class 函数时,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 变量中获得所有 class B 函数的建议。

尝试对函数的变量 and/or PHPDoc 进行类型提示,它应该工作得很好。

Class A {
    /** @var B */
    public $b;

    /**
     * @param B $b
     */
    function __construct($b) {
        $this->b = $b;
    }
    public function  someWork() {
        $this->b->anotherWork();
    }
}

使用类型提示。

在 class A 中这样声明你的构造函数:

public function _construct(B $b) {
  // do stuff
}

这还允许 PHP 在运行时对参数进行类型检查,如果错误则报告错误。