溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php析構(gòu)方法的名稱是哪個

發(fā)布時間:2023-03-06 10:07:14 來源:億速云 閱讀:150 作者:iii 欄目:編程語言

這篇文章主要介紹了php析構(gòu)方法的名稱是哪個的相關知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇php析構(gòu)方法的名稱是哪個文章都會有所收獲,下面我們一起來看看吧。

php析構(gòu)方法的名稱是“__destruct()”,并且不能有任何參數(shù)。“__destruct()”析構(gòu)方法只有在對象被垃圾收集器收集前(即對象從內(nèi)存中刪除之前)才會被自動調(diào)用;它允許在銷毀一個對象之前執(zhí)行一些特定的操作,例如關閉文件、釋放結(jié)果集等。

php析構(gòu)方法的名稱是“__destruct()”,并且不能有任何參數(shù)。

PHP __destruct():析構(gòu)函數(shù)/方法

析構(gòu)函數(shù)的作用和構(gòu)造函數(shù)正好相反,析構(gòu)函數(shù)只有在對象被垃圾收集器收集前(即對象從內(nèi)存中刪除之前)才會被自動調(diào)用。析構(gòu)函數(shù)允許我們在銷毀一個對象之前執(zhí)行一些特定的操作,例如關閉文件、釋放結(jié)果集等。

在 PHP 中有一種垃圾回收機制,當對象不能被訪問時就會自動啟動垃圾回收機制,收回對象占用的內(nèi)存空間。而析構(gòu)函數(shù)正是在垃圾回收機制回收對象之前調(diào)用的。

析構(gòu)函數(shù)的聲明格式與構(gòu)造函數(shù)相似,在類中聲明析構(gòu)函數(shù)的名稱也是固定的,同樣以兩個下畫線開頭的方法名__destruct(),而且析構(gòu)函數(shù)不能帶有任何參數(shù)。在類中聲明析構(gòu)方法的格式如下:

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

在 PHP 中析構(gòu)函數(shù)并不是很常用,它屬于類中可選的一部分,只有需要的時候才在類中聲明。

【示例】下面通過示例來演示一下析構(gòu)函數(shù)的使用。

<?php
    class Website{
        public $name, $url, $title;
        public function __construct(){
            echo '------這里是構(gòu)造函數(shù)------<br>';
        }
        public function __destruct(){
            echo '------這里是析構(gòu)函數(shù)------<br>';
        }
    }
    $object = new Website();
    echo '億速云<br>';
    echo 'http://www.kemok4.com/<br>';
    echo '腳本運行結(jié)束之前會調(diào)用對象的析構(gòu)函數(shù)<br>';
?>

運行結(jié)果如下:

php析構(gòu)方法的名稱是哪個

析構(gòu)函數(shù)會在到某個對象的所有引用都被刪除或者當對象被顯式銷毀時執(zhí)行

在對象銷毀前執(zhí)行吧?

按照官方手冊的描述,析構(gòu)函數(shù)會在到某個對象的所有引用都被刪除或者當對象被顯式銷毀時執(zhí)行。代碼演示如下

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

運行結(jié)果如下

php析構(gòu)方法的名稱是哪個

析構(gòu)函數(shù)會在到某個對象的所有引用都被刪除或者當對象被顯式銷毀時執(zhí)行。

通常來說在腳本結(jié)束時(非unset)php才會銷毀引用 在腳本結(jié)束運行之前運行。

關于“php析構(gòu)方法的名稱是哪個”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“php析構(gòu)方法的名稱是哪個”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI