>  기사  >  백엔드 개발  >  PHP_php 팁에서 $this 및 $that 포인터를 사용하는 예

PHP_php 팁에서 $this 및 $that 포인터를 사용하는 예

WBOY
WBOY원래의
2016-05-16 20:26:27987검색

PHP5는 객체가 복제될 때 자동으로 호출되는 "__clone()"이라는 특수 메소드를 정의합니다. "__clone()" 메소드를 사용하면 원래 객체와 동일한 속성과 메소드를 가진 객체가 생성됩니다. 복제 후 원본 객체의 내용을 변경하려면 __clone()에서 원래 속성과 메서드를 다시 작성해야 합니다. "__clone()" 메서드에는 $this 및 $that라는 두 개의 포인터가 자동으로 포함됩니다. $this는 복사본을 가리키고, $that은 원본을 가리킵니다.

코드 복사 코드는 다음과 같습니다.

클래스 사람 {
//다음은 people의 회원 속성입니다
var $name; // 사람 이름
var $sex; // 개인의 성별
var $age; // 나이
                                           // 속성 이름 $name, 성별 $sex 및 연령 $age에 값을 할당하는 생성자 매개변수를 정의합니다. // 함수 __construct($name="", $sex="",$age="")
함수 __construct($name, $sex, $age) {
            $this->name = $name;
           $this->sex = $sex;
           $this->age = $age;
}
//이 사람이 말할 수 있는 방법은 자신의 속성을 말하는 것입니다
함수 say() {
echo "내 이름은: " . $this->name . " 성별: " . $this->sex . " $this
->나이 ."
";
}
// 객체가 복제될 때 자동으로 호출되는 메서드 복제 후 원본 객체의 내용을 변경하려면 __clone()에서 원래 속성과 메서드를 다시 작성해야 합니다.
함수 __clone() {
                           // $this는 복사본 p2를 참조하고 $that은 원본 p1을 가리키므로 이 방법에서는 복사본의 속성이 변경됩니다.
          $this->name = "나는 복사된 Zhang San$that->name입니다";
// $this->나이 = 30;
}
}
$p1 = 새 사람( "张三", "男", 20 );
$p2 = $p1 복제;
$p1->()라고 말하세요;
$p2->말하기 ();
?>

이 PHP 프로그램을 성공적으로 실행한 후의 결과는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
내 이름은: Zhang San 성별: 남자 내 나이: 20
내 이름은: 복사됩니다. Zhang San 성별: 남자 내 나이: 20

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