Что означает & перед переменной при переборе данных массива?
foreach ($this->data as $id=>&$node) {}
Ответ
У вас есть два варианта цикла:
foreach ($this->data as $id => $node) {}
и (вариант со ссылкой)
foreach ($this->data as $id =>& $node) {}
Разница только лишь в возможности во втором случае изменить элемент массива $node простым присвоением $node = 123
Никакого замедления или копирования данных, если не используются ссылки, не происходит, поскольку PHP использует механизм Copy-on-Write. В варианте цикла без ссылки программисту просто запрещается использовать ссылку, но внутри движка PHP она все так же имеет место.
Комментариев нет:
Отправить комментарий