【问题标题】:Prevent error reporting for variable variable in PhpStorm防止 PhpStorm 中变量变量的错误报告
【发布时间】:2015-07-30 17:57:59
【问题描述】:

我有这段代码,但收到两个“未定义”变量的错误报告

$tables = [
            'foo',
            'bar',
            'baz'
        ];
foreach ($tables as $table) {
    $$table = $this->setUpTables($table, $prefix);
}
$all = $this->getBaz($foo,$bar); // those two are reported as undefined

是否可以告诉 PhpStorm 不要报告这个“错误”?

编辑:

/** @var foo $foo */
/** @var bar $bar */
$all = $this->getBaz($foo,$bar);

【问题讨论】:

  • 使用内联 PHPDoc 来声明它们。没有其他方法(除了,也许,禁止该行的警告,这总体上是错误的方法)。另一种选择需要编辑您的代码以使用实变量。
  • 你的意思是像我编辑的一样吗? @LazyOne,似乎错误现在消失了。
  • 是的——正是我的意思。
  • 太好了,谢谢! @LazyOne
  • 不确定 PHPstorm 会如何看到它,但是一个数组? $result[$table] = $this->setUpTables($table, $prefix);

标签: php phpstorm


【解决方案1】:

我认为,在这种情况下,使用更简单的语言功能会胜出。 PhpStorm 也应该可以轻松确定哪些变量在范围内。

$products        = $this->setUpTables('products', $prefix);
$excludeRules    = $this->setUpTables('excludeRules', $prefix);
$excludedSellers = $this->setUpTables('excludedSellers', $prefix);
$livePricing     = $this->setUpTables('livePricing', $prefix);

$all = $this->getProducts($products, $livePricing);

如果 PhpStorm 认为某个变量不在范围内,则可以在范围内添加此声明。

/** @var variableName */

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    相关资源
    最近更新 更多