>백엔드 개발 >PHP 문제 >PHP 소멸자 메소드의 이름은 무엇입니까?

PHP 소멸자 메소드의 이름은 무엇입니까?

青灯夜游
青灯夜游원래의
2023-03-02 19:11:083286검색

PHP 소멸자 메서드의 이름은 "__destruct()"이며 매개 변수를 가질 수 없습니다. "__destruct()" 소멸자 메서드는 가비지 수집기가 개체를 수집하기 전(즉, 개체가 메모리에서 삭제되기 전)에만 자동으로 호출됩니다. 이를 통해 개체를 삭제하기 전에 다음과 같은 특정 작업을 수행할 수 있습니다. 파일 닫기, 결과 세트 릴리스 등

PHP 소멸자 메소드의 이름은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 8 버전, DELL G3 컴퓨터

php 소멸자 메서드의 이름은 "__destruct()"이며 매개 변수를 가질 수 없습니다.

PHP __destruct(): 소멸자/메서드

소멸자의 역할은 생성자와 정반대입니다. 소멸자는 객체가 가비지 수집기에 의해 수집되기 전에만 작동합니다. 메모리에서 삭제됨) )이 자동으로 호출됩니다. 소멸자를 사용하면 객체를 파괴하기 전에 파일 닫기, 결과 세트 해제 등과 같은 특정 작업을 수행할 수 있습니다.

PHP에는 가비지 수집 메커니즘이 있습니다. 개체에 액세스할 수 없으면 가비지 수집 메커니즘이 자동으로 개체가 차지하는 메모리 공간을 회수하기 시작합니다. 소멸자는 가비지 수집 메커니즘에 의해 객체가 재활용되기 전에 호출됩니다.

소멸자의 선언 형식은 생성자의 선언 형식과 유사합니다. 클래스에 선언된 소멸자 이름도 고정되어 있으며 메서드 이름 __destruct()에 두 개의 밑줄로 시작하며 소멸자는 매개 변수를 가질 수 없습니다. . 클래스에서 소멸자 메서드를 선언하는 형식은 다음과 같습니다.

public function __destruct(){
    ... ...
}

소멸자는 PHP에서 그다지 일반적으로 사용되지 않습니다. 클래스의 선택적 부분이며 필요할 때만 클래스에서 선언됩니다.

【예제】다음은 소멸자의 사용법을 예시로 보여줍니다.

<?php
    class Website{
        public $name, $url, $title;
        public function __construct(){
            echo &#39;------这里是构造函数------<br>&#39;;
        }
        public function __destruct(){
            echo &#39;------这里是析构函数------<br>&#39;;
        }
    }
    $object = new Website();
    echo &#39;PHP中文网<br>&#39;;
    echo &#39;https://www.php.cn/<br>&#39;;
    echo &#39;脚本运行结束之前会调用对象的析构函数<br>&#39;;
?>

실행 결과는 다음과 같습니다.

PHP 소멸자 메소드의 이름은 무엇입니까?

소멸자는 객체에 대한 모든 참조가 삭제되거나 객체가 명시적으로 소멸될 때 실행됩니다.

객체가 소멸되기 전에 실행됩니까?

공식 매뉴얼에 따르면 소멸자는 객체에 대한 모든 참조가 삭제되거나 객체가 명시적으로 소멸될 때 실행됩니다. 코드 데모는 다음과 같습니다

class sf{    public function destruct()
    {        echo METHOD . PHP_EOL;
    }
}
 
 
$c1 = new sf;
$c2 = $c1;echo &#39;unset $c2&#39; . PHP_EOL;unset($c2);echo &#39;unset $c1&#39; . PHP_EOL;unset($c1);// ----$c1 = new sf;
$c2 = $c1;echo &#39;null $c2&#39; . PHP_EOL;
$c2 = null;echo &#39;null $c1&#39; . PHP_EOL;
$c1 = null;// ----$c1 = new sf;
$c2 = $c1;echo &#39;123 $c2&#39; . PHP_EOL;
$c2 = 123;echo &#39;456 $c1&#39; . PHP_EOL;
$c1 = 456;echo &#39;the end&#39; . PHP_EOL;

실행 결과는 다음과 같습니다

PHP 소멸자 메소드의 이름은 무엇입니까?

객체에 대한 모든 참조가 삭제되거나 객체가 명시적으로 소멸될 때 소멸자가 실행됩니다.

일반적으로, PHP는 스크립트가 끝날 때(설정 해제되지 않음) 참조를 파괴하고 스크립트가 끝나기 전에 실행됩니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP 소멸자 메소드의 이름은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.