EDIT : 개체에 비즈니스 로직을 적용한 다음 다른 프로세스에서 옆으로 갈 때 복제본이 필요한 경우 어떻게해야합니까? 서로 다른 결과를 얻을 가능성이 높은 비즈니스 로직을 오브젝트의 새 인스턴스에 다시 적용하거나 기존 오브젝트를 복제하는 것이 더 효율적입니까? 그러나 $ a = $ b를 수행하면 참조로 전달되는 객체가 충분하지 않습니다.참조로 패스 설정 해제 PHP
은의이 예제를 보자 :
$a = new test();
$b = $a;
$b->setSomeProp('test');
$a->setSomeProp('failed');
echo $b->getSomeProp(); //returns 'failed'
및
$a = new test();
$b = unserialize(serialize($a));
$b->setSomeProp('test');
$a->setSomeProp('failed');
echo $b->getSomeProp(); //returns 'test'
이 참조를 대체 할 수있는 더 나은 방법이 있나요?
개체는 항상 PHP에서 참조됩니다. 항상! 이 http://nativephp.com/archives/4 튜토리얼을 참조하십시오. PHP 5 이상 버전의 객체를 다루기 위해 참조가 필요하지 않습니다 (추가 시점을 기억조차하지 마십시오). 따라서 값을 대체 할 수 없습니다. 참조 변수 별칭을 다른 것으로 변경하기 만하면됩니다. 원본이 아닙니다. – CodeAngry
두 번째로 잘린 [인쇄 실패] (http://codepad.org/TxCyCtxa); 당신이 이걸로 무엇을하려하는지 즉시 알 수는 없지만. – NullUserException
@NullUserException var serialize하려고했습니다. 스 니펫은 예를 들어 솔루션에 객체에 적용해야하는 질문에 지정되었습니다. – Udan