코드 복사 코드는 다음과 같습니다.
class SimpleClass{
public $var = ' 기본값 ';
public function displayVar() {
echo $this->var
}
}
$instance = new SimpleClass(); $instance;
$reference =& $instance;
$instance->var = '$designed는 이 값을 갖습니다.'
$instance = null; ($instance );var_dump($designed);
var_dump($instance);
var_dump($designed);
?>
php5는 OOP의 맨 아래 레이어를 다시 작성합니다. 클래스가 인스턴스(객체)를 생성할 때 반환 값 $instance는 객체 자체가 아니라 객체의 id(또는 리소스 핸들)일 뿐입니다. 따라서 $instance가 $Assigned에 할당되면 $할당도 다음을 가리킵니다. 이 객체는 일반 변수의 참조(&) 연산과 약간 비슷합니다. 따라서 $instance가 초기화되면 $Assigned도 초기화됩니다. 그러나 $instance가 소멸(=null)되면 해당 객체에 여전히 핸들($할당됨)이 있으므로 해당 객체는 소멸되지 않으며 소멸자가 트리거되지 않습니다. 결과적으로 var_dump($signed)는 객체의 값이고 $instance는 이미 null을 표시하는 빈 핸들입니다. $reference는 $instance를 갖는 일반 변수와 유사한 참조 관계를 갖기 때문에 빈 핸들이 되어 null을 표시합니다.