
__clone 메서드는 PHP의 객체 복제에 사용됩니다. 객체 복제란, 동일한 클래스의 객체를 생성하여 원본 객체의 속성과 값을 복사하는 것을 의미합니다.
__clone 메서드는 객체가 복제될 때 호출됩니다. 예를 들어, 객체를 배열에 추가하거나, 객체를 다른 변수에 할당할 때 호출됩니다.
#hostingforum.kr
php
class MyClass {
public $name;
public function __clone() {
echo "객체가 복제되었습니다.n";
}
}
$obj = new MyClass();
$obj->name = "John";
$clone_obj = clone $obj;
위 코드에서, `$obj` 객체를 `$clone_obj` 변수에 할당할 때, `__clone` 메서드가 호출됩니다. 이 때, "객체가 복제되었습니다."라는 메시지가 출력됩니다.
__clone 메서드는 객체의 속성을 복사할 때 사용할 수 있습니다. 예를 들어, 객체의 속성이 객체 자체를 참조하는 경우, 복제된 객체가 원본 객체를 참조하는 것을 방지하기 위해 사용할 수 있습니다.
#hostingforum.kr
php
class MyClass {
public $name;
public $self;
public function __construct() {
$this->self = $this;
}
public function __clone() {
$this->self = $this;
}
}
$obj = new MyClass();
$obj->name = "John";
$clone_obj = clone $obj;
위 코드에서, `$obj` 객체의 `$self` 속성이 `$obj` 객체를 참조합니다. 이 때, `$obj` 객체를 복제할 때, `__clone` 메서드가 호출되고 `$self` 속성이 `$clone_obj` 객체를 참조하도록 설정됩니다.
2025-06-07 02:23