Страницы

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

суббота, 15 февраля 2020 г.

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

#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 она все так же имеет место.

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

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