>백엔드 개발 >PHP 튜토리얼 >PHP 객체 복제 clone 키워드 및 __clone() 메서드

PHP 객체 복제 clone 키워드 및 __clone() 메서드

巴扎黑
巴扎黑원래의
2016-11-12 09:18:241374검색


PHP 객체 복제 clone 키워드 및 __clone() 메소드

clone 키워드는 동일한 객체를 복제하는 데 사용되고 __clone() 메소드는 원래 속성을 다시 작성하는 데 사용됩니다. 및 방법.

객체 복제

때때로 프로젝트에서 두 개 이상의 동일한 객체를 사용해야 하는 경우 new 키워드를 사용하여 객체를 다시 만든 다음 동일한 속성을 할당하는 경우입니다. 수행하기가 더 번거롭고 오류가 발생하기 쉽습니다. PHP는 객체를 기반으로 동일한 객체를 완전히 복제할 수 있는 객체 복제 기능을 제공합니다. 또한 복제 후에는 두 객체가 서로 간섭하지 않습니다.

객체를 복제하려면 키워드 clone을 사용하세요. 구문:

$object2 = clone $object;

예:

<?php
class Person {
    private $name;
    private $age;
    function __construct($name, $age) {
        $this->name=$name;
        $this->age=$age;
    }
    function say() {
        echo "我的名字叫:".$this->name."<br />";
echo "我的年龄是:".$this->age;
    }
}
$p1 = new Person("张三", 20);
$p2 = clone $p1;
$p2->say();
?>

예제를 실행하고 출력:

내 이름은: Zhang San

내 나이: 20

__clone()

복제 후 원본 개체의 내용을 변경하려면 특수한 __clone()을 추가해야 합니다. Method 클래스는 원래 속성과 메서드를 재정의합니다. __clone() 메서드는 객체가 복제될 때만 자동으로 호출됩니다.

예:

<?php
class Person {
    private $name;
    private $age;
    function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
    function say() {
        echo "我的名字叫:".$this->name;
echo " 我的年龄是:".$this->age."<br />";
    }
    function __clone() {
        $this->name = "我是假的".$this->name;
        $this->age = 30;
    }
}
$p1 = new Person("张三", 20);
$p1->say();
$p2 = clone $p1;
$p2->say();
?>

예제를 실행하여 출력:

내 이름은: Zhang San 내 나이는: 20

내 이름은 다음과 같습니다. 저는 가짜 장산입니다. 제 나이는 30


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