Code Inspection: Write access to referenced array value without 'unset'
Reports the write access expressions on variables that are still referencing the array value previously used in a foreach
statement.
It is recommended to destroy such references by using unset
.
See foreach (php.net) and unset (php.net) for details.
In the following example, $item
still references the last element of the array after the foreach
loop. As a result, assigning $item
with a value will unintentionally modify the array. After the quick-fix is applied, the unset($item)
call that destroys the reference is added before value assignment.
$arr = [1, 2, 3];
foreach ($arr as &$item) {
$item *= 2;
}
$item = 3;
$arr = [1, 2, 3];
foreach ($arr as &$item) {
$item *= 2;
}
unset($item);
$item = 3;
Suppress an inspection in the editor
Place the caret at the highlighted line and press Alt+Enter or click .
Click the arrow next to the inspection you want to suppress and select the necessary suppress action.
Last modified: 11 February 2024