PHP按值传递对象

时间:2015-04-30 07:55:01

标签: php immutability purely-functional

我想在PHP中实现一个纯函数

如何按值传递对象而不是按引用传递?

换句话说,这是预期的输出:

function change($obj) {
    $obj->set_value(2);
}

$obj = new Object();
$obj->set_value(1);
change($obj);
echo $obj->get_value(); // 1

1 个答案:

答案 0 :(得分:3)

在这里阅读:

http://php.net/manual/en/language.oop5.cloning.php

你真的不应该通过价值,因为那需要深度复制。深度克隆,或为参数分配的疯狂金额。

如果你真的想,答案是: 首先进行深层复制,然后传递对副本的引用。