Страницы

Поиск по вопросам

пятница, 26 апреля 2019 г.

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

Что означает & перед переменной при переборе данных массива?
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 она все так же имеет место.

Комментариев нет:

Отправить комментарий