有谁知道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
);
}
目前,在测试中提取的任何变量都会突出显示(无法识别),但是可能有一个设置可以改变此行为?
答案 0 :(得分:9)
LazyOne提供的解决方案确实有效。但是,为了实现它,您需要更多的上下文。
要准确告知PHPSTORM您要声明的变量评论必须 ,而不是父函数
public function db(){
$db = new SQLite3('db/mysqlitedb.db');
$payments = $db->query('SELECT * FROM payments');
while ($pay = $payments->fetchArray()){
/**
* @var string $to_user
* @var string $from_user
* @var number $amount
*/
extract($pay);
if (isset($to_user, $from_user, $amount))
echo "TO: {$to_user}| FROM: {$from_user}| $ {$amount} \n";
};
}
这是我的代码中的一个工作样本(由于某种原因无法复制你的代码)。
你可以在我使用 extract()函数之前看到我在其上面的注释块中声明隐藏的变量和数据类型。
额外奖励:如果您打算使用数据提取,我强烈建议您使用isset来确保您正在解析的数组包含您期望的字段。 上面代码中的示例