Seb*_*ski 7 php extract phpstorm
有谁知道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
);
}
Run Code Online (Sandbox Code Playgroud)
目前,测试中提取的任何变量都被突出显示(无法识别),但是可能有一个设置可以改变这种行为?
Cod*_*man 10
LazyOne提供的解决方案实际上是有效的.但是,为了实现它,您需要更多的上下文.
要准确地告知PHPSTORM您要声明的变量,注释必须直接放在 extract()之上,而不是父函数.
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";
};
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码中的一个工作示例(由于某种原因无法复制您的代码).
你可以在我使用extract()函数之前看到我在它上面的注释块中声明了隐藏的变量和数据类型.
奖励:如果您打算使用提取,我强烈建议您使用isset来确保您正在解析的数组包含您期望的字段.以上代码中的示例
| 归档时间: |
|
| 查看次数: |
1559 次 |
| 最近记录: |