При передаче объекта в другой объект передается ссылка или копия?

dimitrius

Новичок
При передаче объекта в другой объект передается ссылка на объект или его копия?
Прошу прощения, скорей всего ответ на этот вопрос есть в мануале, но я не нашел(может плохо искал, но решил обратится к вам).
 

AmdY

Пью пиво
Команда форума
dimitrius
а придумай как проверить? или это для тебя не имеет практического смысла, а только ответ на вопрос с собеседования
 

Redjik

Джедай-мастер
AmdY
в цикле передавать объект 100500 раз и смотреть упадет апач или нет =)))
 

zerkms

TDD infected
Команда форума
dimitrius
А с чего ты взял, что в случае создания копии конструктор в принципе вызывался бы?
 
  • Like
Реакции: AmdY

AmdY

Пью пиво
Команда форума
Вообще, удивляет ответ с учётом того, что в самом топикуе уже есть тест кейс, осталось только изменить состояние объекта и сверить
 

scorpion-ds

Новичок
В PHP5 передается ссылка, кажись об это во всех книжках начального уровня упоминают, зачем тут экспериментировать?
 

dimitrius

Новичок
Копия - это новый объект, соответственно при создании нового объекта должен(я так думаю :) ) вызыватся конструктор. Я не прав?
 

zerkms

TDD infected
Команда форума
Копия - это новый объект, соответственно при создании нового объекта должен(я так думаю :) ) вызыватся конструктор. Я не прав?
Чисто технически - нет. Копия - это новый объект, верно. Но как он создастся и что будет вызвано - зависит от реализации ЯП. Чисто теоретически в произвольном языке конструктор может и не вызываться.
 

itprog

Cruftsman
Копия - это новый объект, соответственно при создании нового объекта должен(я так думаю ) вызыватся конструктор.
тогда случился бы парадокс %). Задача конструктора - инициализация (что подразумевает изменение) начального состояния, и если бы он вызывался при копировании, то полученный объект обладал бы уже другим состоянием и не являлся бы копией исходного объекта. Хотя в пхп есть __clone...
 

zerkms

TDD infected
Команда форума
itprog
В некоторых яызках есть конструкторы копирования :)
 

itprog

Cruftsman
zerkms
угу тоже вспомнил об этом, с другой стороны они отдельные и их можно рассматривать как контракт копирования
 
Сверху