PHP에서 개체를 삭제하는 방법: 1. 개체 변수에 NULL을 할당합니다. 구문은 "$obj = null;"입니다. 2. unset() 함수를 사용하여 개체를 삭제합니다. 구문은 "unset($obj)입니다. );".
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
PHP에서 개체를 삭제하는 방법
방법 1: 개체 변수에 NULL 할당
객체가 참조되지 않으면 소멸되므로 NULL을 할당할 수 있습니다.
예: 이러한 객체가 있습니다:
<?php header("Content-type:text/html;charset=utf-8"); class Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '走了!<br />'; } } $obj = new Human(); var_dump($obj); ?>
출력 결과:
객체 변수 $obj에 NULL을 할당합니다. , 객체를 파괴합니다
$obj = null; var_dump($obj);
출력 결과:
방법 2: unset() 함수를 사용하여 객체를 파괴합니다
예 1:
<?php class Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '走了!<br />'; } } $a = new Human(); $b = $c = $d = $a; unset($a); echo $b->name; //输出张三 echo '<hr />'; //先输出换行线再输出走了 析构函数是在线上触发还是线下触发? ?>
답변:
$b = $c = $d = $a;
Default pass-by-reference- 값 기준으로, 4개의 변수는 동일한 메모리를 가리키고, 설정되지 않은 경우 객체는 여전히 남아 있습니다. 다른 3개의 변수가 사용되므로 객체가 파괴되지 않으므로 소멸자는 오프라인으로 트리거됩니다(코드가 실행된 후 메모리가 자동으로 해제됩니다).
예 2:
<?php class Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '走了!<br />'; } } $e = $f = $g = new Human(); unset($e); unset($f); unset($g); echo '<hr />'; //同样的问题: 析构函数是在线上触发还是线下触发? ?>
코드 실행 후 메모리가 자동으로 해제되기 전 개체가 더 이상 어떤 변수에서도 참조되지 않으므로 메모리가 자동으로 해제됩니다....답은 온라인으로 트리거하는 것입니다
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP에서 객체를 파괴하는 방법은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!