Я хотел бы реализовать чистую функцию в PHP
Как передать объект по значению, а не по ссылке?
Другими словами, это ожидаемый результат:
function change($obj) {
$obj->set_value(2);
}
$obj = new Object();
$obj->set_value(1);
change($obj);
echo $obj->get_value(); // 1
читай здесь:
http://php.net/manual/en/language.oop5.cloning.php
Вы действительно не должны передавать по значению, так как это потребует глубокого копирования ака. глубокий клон, или безумная сумма, выделенная для параметров ..
если вы действительно хотите, ответ:
сначала глубокую копию, затем передайте ссылку на копию.
Других решений пока нет …