Неожиданное поведение в foreach с использованием троичного оператора и значения по ссылке - PullRequest
1 голос
/ 04 марта 2020

Почему следующий код имеет различный вывод в PHP 5.5. * И PHP 7. *:

<?php
$foo = ['bar'=>[['item1'=>'value1']]];
foreach ($foo['bar'] ?: [] as $k => &$arr1) {
  $arr1['item1'] = 'value2';
}

var_dump($foo);

В PHP 5 значение $foo['bar'][0]['item1'] будет изменено с помощью value2, но в PHP 7 не будет.

...