phpstorm不';我不提建议

phpstorm不';我不提建议,php,phpstorm,Php,Phpstorm,我有两个类A和B,一个类具有B类对象的属性。当我尝试调用这个B类函数时,phpstorm没有显示任何建议。我是这样做的 Class A { public $b; function __construct($b) { $this->b = $b; } public function someWork() { $this->b->anotherWork(); } } Class B { public

我有两个类A和B,一个类具有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类函数的建议。

尝试在变量上键入提示和/或在函数上键入PHPDoc,它应该工作得很好

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

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

尝试在变量上使用类型提示和/或在函数上使用PHPDoc,它应该会非常有效

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

    /**
     * @param B $b
     */
    function __construct($b) {
        $this->b = $b;
    }
    public function  someWork() {
        $this->b->anotherWork();
    }
}
使用类型提示

在类A中,按如下方式声明构造函数:

public function _construct(B $b) {
  // do stuff
}
这还允许PHP在运行时对参数进行类型检查,如果参数错误,则报告错误。

使用类型提示

在类A中,按如下方式声明构造函数:

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

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

实际上,在这种情况下,我认为您只是在类
A
的属性
b
上查找类型提示,但是使用PHPDoc从来都不是一个坏主意。是的,我对你的答案投了赞成票,但我认为我应该接受@Hobo Sapiens的答案。实际上,在这种情况下,我认为你只是在类
a
的属性
b
上寻找类型提示,但是使用PHPDoc从来都不是一个坏主意。是的,我对你的答案投了赞成票,但我认为我应该接受@Hobo Sapiens的答案。哇,这看起来更清晰易懂。谢谢,这看起来更清晰易懂。谢谢