이 글은 주로 PHP 소멸자 및 재활용 메커니즘 예제에 대한 자세한 설명을 코드 형식으로 공유합니다.
// ===참고 1부===
/*
질문
1. 객체를 true와 같은 다른 항목에 할당하면 객체가 파괴되나요?
답변: 예
2. 110.php의 코드 파트 4
왜 하나는 파괴되고 2는 비어 있나요?
마지막 항목이 hr 라인 아래에 표시되나요?
답변: PHP 페이지가 실행되었기 때문에 마지막 항목이 삭제되었습니다.
이 시점에서 시스템이 마침내 재활용되고 $d가 삭제됩니다.
그래서 hr 줄 뒤에 표시됩니다.
*/
// == =코드 부분 1= ==
class Human2 { public $name = null; public $gender = null; public function __construct() { echo '出生了<br >'; } public function __destruct() { echo '再见<br >'; } }$a = new Human2();$b = new Human2();$c = new Human2();$d = new Human2();unset($a);//$b = false;$b = true;//改成true也可以销毁$c = null;echo '<hr >';
// 객체 재활용 메커니즘
// ===코드 부분 2===
class Human { public $name = null; public $gender = null; public function __destruct() { echo '再见!<br >'; } }$a = new Human();$b = $c = $d = $a;unset($a);echo '<hr >';
/*
그러면 질문은:
1 번이나 죽었습니다. ?
2. HR 라인에서 죽을 것인가, 아니면 HR 라인 아래에서 죽을 것인가?
답: 회색선 아래에서 한 번 사망했습니다.
그림 11101과 같이 인간의 집을 여는 열쇠 a 중 하나가 빠져 있고,
b, c, d 세 개의 열쇠도 있습니다.
모든 코드가 최종적으로 실행되고 재활용 메커니즘이 시작될 때까지
안녕하세요.
*/
// ===코드 부분 3===
class Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '再见!<br >'; } }$a = new Human();$b = $c = $d = $a;echo $a->name,'<br >'; //张三echo $b->name,'<br >'; //张三$b->name ='李四';echo $a->name,'<br >'; //李四echo $b->name,'<br >'; //李四unset($a);echo '<hr >';// hr线// 再见!
// ===코드 부분 4===
class Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '再见!<br >'; } }$e = $f = $g = new Human();unset($e);echo 'unset e<br >';unset($f);echo 'unset f<br >';unset($g);// 本行unset触发对象消亡,然后执行下一行echo gecho 'unset g<br >';
/*
여기서 페이지가 실행됩니다 완료 , 객체가 파괴되고 소멸자가 실행됩니다.
얼마나 많은 객체가 파괴되었나요?
답변:
객체는 하나뿐이고 한 번만 죽습니다.
시스템이 재활용될 때, 즉 페이지가 실행될 때 죽습니다.
*/
관련 권장 사항:
위 내용은 PHP 소멸자 및 재활용 메커니즘 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!