클래스 자체에 새 인스턴스를 반환하는 메서드가 있습니다. 동일한 값으로 새로운 객체를 반복해서 선언하지 않고도 단일 객체를 사용할 수 있습니다. 왜 클래스를 확장하거나 다른 것을 확장하지 않는지 궁금해하는 사람들에게는 내 인생을 더 편하게 만들어 주며 매력처럼 작동하지만 최종 목표는 모든 것을 한 줄로 제거하는 것입니다. 예개체의 인스턴스를 모두 설정 해제합니다. PHP
:
$foo = new myClass('name1','ab','cd');
$bar = $foo->duplicate();
//duplicate() saves the new object in itself in an array:
array_push($this->instance,new myClass('name1','ab','cd'));
//and returns a pointer to the saved instance.
return end($this->instance);
$foo
및 $bar
이제 동일한 방법과 가치를 공유하지만, 그 값은 개별적으로 변형 될 수있다. 내가 자동으로 해제 PHP됩니다 unset($foo)
을 만든 첫 번째 클래스를 설정 해제하는 경우 여기
$foo->changeName('newName');
$bar->changeName('newName2');
내 질문은, 다른 인스턴스는 ($bar)
또는 가비지 컬렉터는 결국 그들을 제거 할 것인가?
$ foo를 불안정하게 테스트하여 $ foo를 호출 할 때 오류가 발생하지만 $ bar를 호출 할 때 오류가 발생합니다.
내가하려는 것은 해당 클래스의 모든 인스턴스를 한 번에 설정 해제하는 것입니다.
감사합니다. 내가 여기에 PHP 레퍼런스에서 이해하는 것과
오브젝트의 '콜렉션'을 결정적으로 파기하려면 일종의 실제 콜렉션에 해당 콜렉션을 유지하고 한 번에 모두 루프에서 '해제'하십시오. –