Skip to content

UnusedForeachValue

--find-dead-codeがオンになっていて、Psalmがforeachの値への参照を見つけられない場合に発生します。

<?php
/**
 * @param array<string, int> $a
 */
function foo(array $a) : void {
    foreach ($a as $key => $value) { // $valueは未使用
        echo $key;
    }
}

変数名の前にアンダースコアを付けるか、$_という名前にすることで抑制できます:

<?php
foreach ([1, 2, 3] as $key => $_val) {}
foreach ([1, 2, 3] as $key => $_) {}

ユーザーノート