PHP 5 의 대상 모델 은 인용 을 통 해 대상 을 호출 하지만,때로는 대상 의 복사 본 을 만 들 고 싶 을 수도 있 으 며,원래 의 대상 의 변화 가 복사 본 에 영향 을 주지 않 기 를 바 랍 니 다.이러한 목적 을 위해 PHP 는 특수 한 방법 을 정 의 했 습 니 다.이름 은clone.상construct 와destruct 와 마찬가지 로 앞 에 밑줄 이 두 개 있 습 니 다.기본적으로clone 방법 은 원래 대상 과 같은 속성 과 방법 을 가 진 대상 을 만 듭 니 다.복제 할 때 기본 내용 을 바 꾸 려 면clone 에 복사(속성 이나 방법).복제 방법 은 인자 가 없 을 수 있 지만 this 와 that 포인터(that 가 복 제 된 대상 을 가리 키 는 것)를 동시에 포함 합 니 다.복 제 를 선택 하면 대상 에 포 함 된 모든 정 보 를 조심해 서 복사 해 야 합 니 다.that 에서 this 까지 사용 하면clone 에서 복사 합 니 다.PHP 는 어떠한 내 현적 복사 도 실행 하지 않 습 니 다.다음은 일련의 번호 로 대상 을 자동화 하 는 예 를 보 여 줍 니 다.
name=$name;$this->id = ++self::$nextSerial; } function __clone()file://클론{$this->name="Clone of$that->name";$this->id = ++self::$nextSerial; } function getId()file://id 속성 을 가 져 오 는 값{return($this->id);}function getName()file://name 속성의 값{return($this->name);}$ot = new ObjectTracker("Zeev's Object"); $ot2 = $ot->__clone(); //출력:1 Zeev's Object print($ot->getId().".$ot->getName()."
");/출력:Zeev's Object print 의 클론($ot2->getId().".".$ot2->getName()."
");?>