有没有办法让PhpStorm的自动完成"更深入"?

Khe*_*pin 6 php autocomplete phpstorm

在PhpStorm中,如果我创建一个对象,那么我在该对象上的所有自动完成工作正常:

$object = new MyClass();
$object->getNa...
Run Code Online (Sandbox Code Playgroud)

将自动完成

$object->getName();
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都那么好,但是如果我通过第一种方法返回一个对象,那么自动完成将不起作用.

$car->getDriver()->getNam...
Run Code Online (Sandbox Code Playgroud)

将显示一个空列表.getDriver方法将其PHPDoc @return标记设置为"Driver",但在其他IDE中,这样可以获得正确的自动完成.

想知道是否有我错过的设置或者PhpStorm不提供这种高级自动完成功能吗?

hak*_*kre 9

该函数getDriver()需要适当的返回值类型提示(函数的docblock):

  * @return classOrInterfaceName
Run Code Online (Sandbox Code Playgroud)

这通常足以使IDE"更深入".我很确定Phpstorm支持这一点,但我不是一个Phpstorm用户.

注意带有接口/类的文件在项目中或引用它.

作为解决方法,您可以将返回值分配给变量,并键入提示该变量.可能不那么舒服,但可以帮助.