dart_kinselok
@dart_kinselok
Правильный вопрос содержит 50% искомого ответа...

Кушает ли ссылка на переменную память?

Добрый день, дорогие хабровчане!

Вопрос созрел следующий. Если у меня есть переменная $var1, в которой хранится объект с огромным количеством пропертей, при попытке записать ее по ссылке в $var2 = &$var1;, я просто укажу на ту же область памяти, что и $var1 и не буду тратить память дважды на одну и ту же историю, верно?

Спасибо за ответы!
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
@neol
Это бессмысленно. PHP не копирует объекты пока вы явно не скажете сделать это, использовав clone.

Начиная с PHP объектная переменная больше не содержит сам объект как значение. Такая переменная содержит только идентификатор объекта, который позволяет найти конкретный объект при обращении к нему. Когда объект передаётся как аргумент функции, возвращается или присваивается другой переменной, то эти разные переменные не являются псевдонимами (алиасами): они содержат копию идентификатора, который указывает на один и тот же объект.


https://www.php.net/manual/ru/language.oop5.refere...

PS Похоже документация кривовата. Если мне не изменяет склероз, то там должно быть "начиная с PHP 5 объектная переменная больше не содержит сам объект как значение".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы