>백엔드 개발 >PHP 튜토리얼 >Clone Operator를 사용하여 PHP에서 독립 개체 복사본을 만드는 방법은 무엇입니까?

Clone Operator를 사용하여 PHP에서 독립 개체 복사본을 만드는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-20 14:58:15419검색

How to Create Independent Object Copies in PHP Using the Clone Operator?

PHP에서 객체 사본 생성

PHP 객체는 본질적으로 참조로 전달되므로 객체 할당 시 원본에 대한 다른 참조를 할당하기만 하면 됩니다. 물체. 이 문제를 해결하고 독립적인 개체 복사본을 생성하기 위해 PHP는 복제 연산자를 제공합니다.

참조로 전달하는 이유

PHP에서 개체는 메모리 영역에 대한 효과적인 참조입니다. 객체의 데이터를 포함합니다. 참조로 전달하면 함수 내의 객체에 대한 모든 수정 사항이 원래 객체에 반영되어 객체 지향 프로그래밍의 원래 의도가 유지됩니다.

객체 복제 연산자

clone 연산자는 객체의 복사본을 생성하기 위해 특별히 설계되었습니다. $clonedObject = clone $originalObject를 사용하면 원본 개체와 동일한 속성 및 값을 가진 새 개체가 생성됩니다. 복제된 개체는 완전히 독립적인 개체이며 두 개체에 대한 변경 사항은 다른 개체에 영향을 주지 않습니다.

사용 예

다음 예를 고려하세요.

class A {
    public $b;
}

function set_b($obj) { $obj->b = "after"; }

$a = new A();
$a->b = "before";
$c = $a; // Assignment creates another reference to $a

set_b($a);

print $a->b; // Outputs "after"
print $c->b; // Also outputs "after"

이 예에서 $a를 $c에 할당하면 동일한 개체에 대한 참조가 생성됩니다. set_b($a)가 호출되면 원래 객체가 변경되어 $a와 $c 모두에 영향을 미칩니다.

원하는 결과를 얻으려면 다음과 같이 복제를 사용할 수 있습니다.

$a = new A();
$a->b = "before";
$c = clone $a; // Creates an independent copy of $a

set_b($a);

print $a->b; // Outputs "after"
print $c->b; // Outputs "before" (not affected by changes to $a)

이 경우 $c는 $a에 대한 수정 사항에 영향을 받지 않는 별도의 개체입니다.

위 내용은 Clone Operator를 사용하여 PHP에서 독립 개체 복사본을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.