Code Inspection: Write access to referenced array value without 'unset'
Configure inspections: Settings | Editor | Inspections
Show intention actions: AltEnter
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.
Before the quick-fix
$arr = [1, 2, 3];foreach ($arr as &$item) { $item *= 2;}$item = 3;
After the quick-fix
$arr = [1, 2, 3];foreach ($arr as &$item) { $item *= 2;}unset($item);$item = 3;
Place the caret at the highlighted line and press AltEnter or click
.
Click the arrow next to the inspection you want to suppress and select the necessary suppress action.