В объектах PHP автоматически передаются по ссылке:Как передать PHP объект не по ссылке
$obj1 = new stdClass();
$obj1->foo = 'bar';
$obj2 = $obj1;
$obj2->foo = 'OOF';
var_dump($obj1->foo); // OOF
Есть элегантный способ скопировать эту переменную и не относится к исходной переменной? Я хочу сохранить копию объекта, а затем изменить его без использования оригинала. Благодарю.
Just ** clone ** it! – Rizier123
Почему? В чем смысл передачи объектов по стоимости? BTW: объекты не передаются по ссылке, вы фактически передаете идентификатор объекта. Предположим, что вы создаете объект, этот экземпляр хранится в памяти и назначается идентификатор (например, 123), передавая этот экземпляр на самом деле, передает этот идентификатор по значению, а вызываемая функция/метод затем извлекает этот объект с помощью идентификатора. Ссылка немного отличается: '$ x = new stdClass; $ y = &$x; $ y = null; var_dump ($ x); 'dump' null' –
«Почему?» <- Я не понимаю этот вопрос. Я хочу изменить «копию» переменной без создания оригинала? Я что-то упускаю? Есть что-то экзотическое в этом случае? Пример: я хочу сохранить список объектов и зарегистрировать их позже, но мне не нужно КАЖДОЕ свойство. Поэтому я «клонировал» и «не задавал» набор свойств, которые мне не нужны для целей отладки. Имеют смысл? – emersonthis