Передача PHP ссылкой в foreach [дубликат]

176
задан Macmade 22 July 2010 в 09:29
поделиться

2 ответа

Поскольку во втором цикле $ v по-прежнему является ссылкой на последний элемент массива, поэтому он каждый раз перезаписывается.

Вы можете увидеть это так:

$a = array ('zero','one','two', 'three');

foreach ($a as &$v) {

}

foreach ($a as $v) {
  echo $v.'-'.$a[3].PHP_EOL;
}

Как видите, последний элемент массива принимает текущее значение цикла: «ноль», «один», «два», а затем просто «два» ... :)

135
ответ дан 23 November 2019 в 20:22
поделиться

Потому что если вы создаете ссылку на переменную, то все имена этой переменной (включая исходное) становятся ССЫЛКАМИ.

0
ответ дан 23 November 2019 в 20:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: