
SolrInputDocument::__clone 메서드는 원본 객체를 복사하여 새로운 객체를 생성합니다. 이 메서드는 원본 객체의 변경 사항을 반영하지 않습니다.
예를 들어, 원본 객체의 필드 값을 변경한 후, __clone 메서드를 호출하면, 복사된 객체의 필드 값은 변경되지 않습니다.
#hostingforum.kr
php
$original = new SolrInputDocument();
$original->addField('name', 'John');
$clone = clone $original;
$clone->addField('name', 'Jane');
print_r($original); // name: John
print_r($clone); // name: Jane
위 예제에서, 원본 객체의 필드 값을 변경한 후, __clone 메서드를 호출했지만, 복사된 객체의 필드 값은 변경되지 않았습니다.
만약 원본 객체의 변경 사항을 반영하고 싶다면, 객체를 복사하는 대신, 새로운 객체를 생성하여 원본 객체의 필드를 복사하는 방법을 사용할 수 있습니다.
#hostingforum.kr
php
$original = new SolrInputDocument();
$original->addField('name', 'John');
$clone = new SolrInputDocument();
$clone->addField('name', $original->getFieldValue('name'));
$original->addField('name', 'Jane');
print_r($original); // name: Jane
print_r($clone); // name: John
위 예제에서, 원본 객체의 필드 값을 변경한 후, 새로운 객체를 생성하여 원본 객체의 필드를 복사했습니다. 따라서, 복사된 객체의 필드 값은 변경되지 않았습니다.
2025-08-02 16:45