3

像 PHPMD 这样的静态代码分析器(在这种特定情况下)抱怨以下 PHP 代码中的错误:

foreach ($aSomething as $key => $value) {
    ... do something with the $key only
}

错误:

Avoid unused local variables such as '$value'.

现在,我不知道有什么方法可以只用键创建一个 foreach 循环。措辞这些行的“分析仪安全”解决方案是什么?

我目前正在通过调用来解决这个问题array_keys,然后对这个问题进行 foreach-ing,但感觉有点矫枉过正。另一种解决方案是始终使该循环的分析器静音。

与代码质量和代码要求的“可理解性”保持一致的“正确”方式是什么?

4

1 回答 1

2

正如我从一些 phpmd 文档中读到的,有一个allow-unused-foreach-variablesrule 属性UnusedLocalVariable,请在此处阅读更多内容:

https://phpmd.org/rules/unusedcode.html

另外,根据这里的github线程https://github.com/phpmd/phpmd/pull/329,应该有一个选项

UnusedLocalVariable规则中的白名单变量

至于使用$_表示“不需要值”或“扔掉它”的变量,还有另一个 git 线程https://github.com/phpmd/phpmd/issues/326,它最终将您发送到前一个有机会到“UnusedLocalVariable规则中的白名单变量”。

所以,有两个选择 - 允许未使用的变量,我认为这不是一个好主意。第二种选择是将被忽略的变量列入白名单($_例如上面提到的),并在您不需要这些变量中的数据时使用它们。

虽然我不知道如何配置phpmd,但我想有人可以使用上述选项的正确配置来编辑我的答案。

于 2019-04-16T15:02:20.993 回答