void destruct(void)
PHP 5에서는 C++와 같은 다른 객체 지향 언어와 유사한 소멸자 개념을 도입했습니다. 소멸자는 객체에 대한 모든 참조가 제거되거나 객체가 명시적으로 소멸될 때 실행됩니다.
소멸자 예<?php class MyDestructableClass { function construct () { print "In constructor\n" ; $this -> name = "MyDestructableClass" ; } function destruct () { print "Destroying " . $this -> name . "\n" ; } } $obj = new MyDestructableClass (); ?>exit()를 사용하여 스크립트를 종료하는 경우에도 소멸자가 호출됩니다. 소멸자에서 exit()를 호출하면 나머지 종료 작업이 중단됩니다. 참고:모든 HTTP 헤더가 전송된 후 스크립트가 닫힐 때 소멸자가 호출됩니다. 스크립트가 닫힐 때의 작업 디렉터리는 SAPI(예: Apache)에 있을 때와 다를 수 있습니다. 참고: 소멸자(스크립트가 종료될 때 호출됨)에서 예외를 발생시키려고 하면 치명적인 오류가 발생합니다.
class x { function construct() { $this->file = fopen('path', 'a'); } function destruct() { fclose($this->file); } }간단히 말하면 소멸자는 객체가 닫힐 때 특별한 작업을 완료하는 데 사용됩니다. 예를 들어 위에 작성한 예에서는 파일이 인스턴스화됨과 동시에 열리는데 언제 닫히나요? 사용 후에는 그냥 닫으세요. 따라서 소멸자가 직접 닫거나, 처리된 데이터 중 일부를 데이터베이스에 기록합니다. 이때 소멸자가 완료되기 전에 이러한 개체를 완료하는 것을 고려할 수 있습니다. 속성은 여전히 존재하며 내부 접근용으로만 사용되므로 객체와 관련된 모든 후속 작업을 안전하게 수행할 수 있습니다
소멸자는 객체 자체의 메모리를 해제하는 것이 아니라 사용자가 추가로 메모리를 해제해야 할 때 사용됩니다. 메모리를 해제해야 하는 메모리가 있는 곳을 안내하고, 최종적으로 PHP는 이를 소멸할 때 사용합니다.
일반적으로 해제해야 하는 리소스가 없으면 명시적으로 가상의 함수를 작성할 필요가 없습니다. 다음 Just.
unset(
);
또는 $variable name = NULL;을 사용합니다.
위 내용은 PHP 소멸자 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!