PhpStorm 2024.1 Help

Code Inspection: 'foreach' variable overwrites already defined variable

Reports the keys and values in foreach loops that are assigned a non-primitive value before the foreach loop and are accessed after it. Such usages may unwillingly overwrite an already defined value and cause latent bugs.

In the following example, the $value variable is initially assigned the result of calling foo(). When iterating over the myArr array, the value of the current element is assigned to and overwrites $value on each iteration. To avoid potential bugs, a new $val variable is used inside the foreach loop.

$value = foo(); foreach ($myArr as $key => $value) {} echo $value;
$value = foo(); foreach ($myArr as $key => $val) {} echo $value;

Suppress an inspection in the editor

  1. Place the caret at the highlighted line and press Alt+Enter or click the Intention action icon.

  2. Click the arrow next to the inspection you want to suppress and select the necessary suppress action.

Last modified: 11 February 2024