Клонирование смешанной структуры из массивов и объектов
Чтобы быть уверенным, что сложный объект полностью скопирован по значению, и что содержащиеся в нем обекты не переданны по ссылке, можно использовать такую функцию.
function clone_arrray_obj ($obj) { $result = $obj; if (is_object($obj) || is_array($obj)) { if (is_object($obj)) { $result = clone $obj; if(count($result)) { foreach ($result as $i => $value) { $result->$i = clone_arrray_obj($result->$i); } } } else { if(count($result)) { foreach ($result as $i => $value) { $result[$i] = clone_arrray_obj($result[$i]); } } } } return $result; }