Символ & перед переменной в php

275
09 августа 2017, 20:49

Что означает & перед переменной при переборе данных массива?

foreach ($this->data as $id=>&$node) {}
Answer 1

У вас есть два варианта цикла:

foreach ($this->data as $id => $node) {}

и (вариант со ссылкой)

foreach ($this->data as $id =>& $node) {}

Разница только лишь в возможности во втором случае изменить элемент массива $node простым присвоением $node = 123.

Никакого замедления или копирования данных, если не используются ссылки, не происходит, поскольку PHP использует механизм Copy-on-Write. В варианте цикла без ссылки программисту просто запрещается использовать ссылку, но внутри движка PHP она все так же имеет место.

READ ALSO
Из-за чего русские символы в MySQL заменяются на знаки вопроса?

Из-за чего русские символы в MySQL заменяются на знаки вопроса?

Добрый деньВпервые вывела сайт в сеть, и столкнулась с проблемой что текст на русском языке, занесенный в базу, выводится вопросиками в черных...

267
Стилизация option + PHP

Стилизация option + PHP

Надо задать свои стили для option (сменить фон при наведении и сделать отступы), готовые решения есть, но они очень громоздкие и я решил написать...

229
загрузка классов в реестр на php

загрузка классов в реестр на php

использую реестр:

232