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