Неиспользуемое значение foreach в статических анализаторах кода - PullRequest
3 голосов
/ 16 апреля 2019

Статические анализаторы кода, такие как (в данном конкретном случае) PHPMD, жалуются на ошибку в следующем фрагменте кода PHP:

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

Ошибка:

Avoid unused local variables such as '$value'.

Теперь я не знаю ни одного способа создания цикла foreach только с ключами. Каким было бы «безопасное для анализатора» решение для формулировки этих строк?

В данный момент я решаю эту проблему с помощью звонка на array_keys, а затем пробуждаюсь над этим, но это кажется излишним. Другим решением всегда является отключение анализатора для этого цикла.

Каков «правильный» способ соответствовать качеству кода и «понятности» требований к коду?

1 Ответ

2 голосов
/ 16 апреля 2019

Когда я читаю из некоторых документов phpmd, есть свойство allow-unused-foreach-variables для правила 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, я предполагаю, что кто-то сможет отредактировать мой ответ с правильной конфигурацией для указанных выше параметров.

...