PhpStorm 2023.2 Help

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

  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: 16 May 2022