PHP에서 객체는 참조로 전달되는 것으로 보입니다. 할당 연산자조차도 객체의 복사본을 생성하지 않는 것 같습니다.
다음은 간단하고 입증 된 증거입니다.
<?php
class A {
public $b;
}
function set_b($obj) { $obj->b = "after"; }
$a = new A();
$a->b = "before";
$c = $a; //i would especially expect this to create a copy.
set_b($a);
print $a->b; //i would expect this to show 'before'
print $c->b; //i would ESPECIALLY expect this to show 'before'
?>
두 경우 모두 '후'를 받고 있습니다
따라서 참조가 아닌 값으로 $ a 를 set_b () 에 전달하는 방법은 무엇입니까?
(object) ((array) $objectA)
clone $objectA
나 보다 나은 성능으로 원하는 결과를 얻을 수 있습니다 new stdClass
.