【发布时间】:2017-04-18 20:31:04
【问题描述】:
有谁知道 PhpStorm 中是否有一个设置可以触发使用extract() 函数生成的识别变量?
示例如下:
/**
* @return array
*/
protected function orderSet() : array
{
//...
return [
'colour' => $colour,
'green' => $green,
'orange' => $orange
];
}
/**
* @test
*/
public function returns_correct_attribute_names()
{
$params = $this->orderSet();
extract($params);
$this->assertEquals(
'Colour',
$colour->name
);
}
目前在测试中提取的任何变量都被突出显示(无法识别),但也许有一个设置可以改变这种行为?
【问题讨论】:
-
您可以使用带有
@var的内联PHPDoc 注释来告诉IDE 这个变量是已知的以及它是什么类型:/** @var MyClass $color */ -
感谢@LazyOne - 所以除了使用注释之外,PhpStorm 中没有别的东西了吗?
-
其实,刚刚试了一下,好像也不管用。
-
@LazyOne 但是其余变量呢:$green,$orange? PhpDockBlock 可以帮助理解它是什么变量,但它不能帮助理解这个变量在哪里定义或我们如何获得它。
-
@seb 短代码可能非常复杂,“extract()”对您的服务器来说可能比 VO 花费更多。有时最好浪费一些代码行来获得更轻量的应用程序。