PHP에서 객체 복사본 생성
PHP는 객체 참조를 고유한 방식으로 처리합니다. 일반적인 믿음과는 달리 객체는 참조로 전달됩니다. 이는 객체를 다른 변수에 할당해도 복사본이 생성되지 않음을 의미합니다. 이 동작은 할당 후 원본 개체를 수정할 때 분명해집니다.
예:
다음 PHP 조각을 고려하세요.
class A { public $b; } function set_b($obj) { $obj->b = "after"; } $a = new A(); $a->b = "before"; $c = $a; // This line creates a reference to $a, not a copy set_b($a); print $a->b; // Output: 'after' print $c->b; // Output: 'after'
여기서 예를 들어 $a를 $c에 할당하면 복사본이 아닌 $a에 대한 참조가 생성됩니다. set_b() 함수가 $a 객체를 수정하면 변경 사항이 $a와 $c 모두에 반영됩니다.
해결책: 복제 사용
PHP 5 이상 객체의 실제 복사본을 생성하기 위해 복제 연산자를 제공합니다. 복제를 사용하면 개체를 값으로 전달하고 원본 개체에 대한 수정 사항이 복사본에 영향을 주지 않도록 할 수 있습니다.
$objectB = clone $objectA; // Creates a copy of $objectA
중요 참고:
PHP에서는 객체만 참조로 전달된다는 점을 언급할 가치가 있습니다. 기본 데이터 유형(예: 정수, 문자열, 부울 값)은 항상 값으로 전달됩니다.
위 내용은 PHP에서 객체의 실제 복사본을 어떻게 생성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!