国产网曝门99视频在线看_免费看片a级毛片免费看_4hu四虎永久在线观看_高清无套内精线观看456_国产欧美亚洲日韩久久福利_av在线无码观看另类重口_欧美精品一二三区较多收藏_欧美老熟妇伦视频_婷婷六月综合激情_最新国产成人野战在线观看


PHP8中的構(gòu)造方法和析構(gòu)方法-PHP8知識(shí)詳解

導(dǎo)讀:今日分享的內(nèi)容是PHP8中的構(gòu)造方法和析構(gòu)方法,我們把構(gòu)造方法和析構(gòu)方法這兩個(gè)方法分開(kāi)來(lái)講:

今日分享的內(nèi)容是PHP8中的構(gòu)造方法析構(gòu)方法,我們把構(gòu)造方法和析構(gòu)方法這兩個(gè)方法分開(kāi)來(lái)講:


1、構(gòu)造方法

構(gòu)造方法存在于每個(gè)聲明的類(lèi)中,主要作用是執(zhí)行一些初始化任務(wù)。如果類(lèi)中沒(méi)有直接聲明構(gòu)造方法,那么類(lèi)會(huì)默認(rèn)地生成一個(gè)沒(méi)有參數(shù)內(nèi)存為空的構(gòu)造方法。

php8中,構(gòu)造方法的方法名稱(chēng)必須是兩個(gè)下劃線(xiàn)開(kāi)頭的,即“__construct”。具體的語(yǔ)法格式如下:

function__construct([mixed args]){
//方法的內(nèi)容
}

一個(gè)類(lèi)只能聲明一個(gè)構(gòu)造方法。構(gòu)造方法中的參數(shù)是可選的,如果沒(méi)有傳入?yún)?shù),那么將使用默認(rèn)參數(shù)對(duì)成員變量進(jìn)行初始化。

定義一個(gè)構(gòu)造方法,參考代碼

<?php
    class Fruit {
        public $name;            //定義成員變量
        public $num;             //定義成員變量
          public function __construct($name, $num) { //定義構(gòu)造方法
            $this->name=$name;                     //調(diào)用本類(lèi)的成員變量
            $this->num=$num;                    //調(diào)用本類(lèi)的成員變量
        }
        public function showFruit(){             //定義成員方法
             if($this->num>300){
                return $this->name."的庫(kù)存充足,不需要進(jìn)貨!";
            }else{
                return $this->name. "的庫(kù)存數(shù)量不多了,需要盡快進(jìn)貨!";
            }
        }
    }
    $f1=new Fruit ("橘子",600);                 //類(lèi)的實(shí)例化并傳遞參數(shù)
    echo $f1->showFruit ();                    //調(diào)用方法
    echo "<br />";  
    $f2=new Fruit ("柚子",100);               //類(lèi)的實(shí)例化并傳遞參數(shù)
    echo $f2->showFruit ();                   //調(diào)用方法
?>

以上代碼在PHP8中的顯示結(jié)果如下:

橘子的庫(kù)存充足,不需要進(jìn)貨!
柚子的庫(kù)存數(shù)量不多了,需要盡快進(jìn)貨!

由此可見(jiàn),構(gòu)造方法__construct()在實(shí)例化時(shí)會(huì)自動(dòng)執(zhí)行,通常對(duì)一些屬性進(jìn)行初始化,也就是對(duì)一些屬性進(jìn)行初始化的賦值。

要特別注意的是,構(gòu)造方法不能有返回值(return)。

2、析構(gòu)方法

析構(gòu)方法的作用和構(gòu)造方法正好相反。它是在對(duì)象銷(xiāo)毀的時(shí)候被調(diào)用執(zhí)行的。但是因?yàn)镻HP求的終有資源釋放,所以析構(gòu)方法的意義是有限的。具體使用的語(yǔ)法格式如下:

function __destruct(){
//方法的內(nèi)容,通常是完成一些對(duì)象銷(xiāo)毀前的清理任務(wù)
}

PHP 8具有垃圾回收機(jī)制,可以自動(dòng)清除不再使用的對(duì)象,從而釋放更多的內(nèi)存。析構(gòu)方法是在垃圾回收程序執(zhí)行前被調(diào)用的方法,是 PHP 8編程中的可選內(nèi)容。

不過(guò),析構(gòu)方法在某些特定行為中還是有用的,比如在對(duì)象被銷(xiāo)毀時(shí)清空資源或者記錄日志信息。

以下兩種情況中,析構(gòu)方法可能被調(diào)用執(zhí)行。

(1)、代碼運(yùn)行時(shí),當(dāng)所有的對(duì)于某個(gè)對(duì)象的reference(引用)被毀掉的情況下。

(2)、當(dāng)代碼執(zhí)行到最終,并且 PHP8 停止請(qǐng)求的時(shí)候。

定義析構(gòu)方法參考代碼:

<?php
    class Fruit {
        public $name;                               //定義成員變量
        public $num;                                //定義成員變量
        public function __construct($name,$num){   //定義構(gòu)造方法
            $this->name=$name;                     //調(diào)用本類(lèi)的成員變量
            $this->num=$num;                    //調(diào)用本類(lèi)的成員變量
        }
        public function showFruit (){         //定義成員方法
             if($this->num>600){
                return $this->name."的庫(kù)存充足,不需要進(jìn)貨!";
            }else{
                return $this->name."的庫(kù)存數(shù)量不多了,需要盡快進(jìn)貨!";
            }
        }
        public function __destruct(){            //定義析構(gòu)方法
            echo "析構(gòu)函數(shù)被調(diào)用了,對(duì)象Fruit被銷(xiāo)毀了!<br />";
        }
    }
    $f1=new Fruit("梨",800);                    //類(lèi)的實(shí)例化并傳遞參數(shù)
    $f2=new Fruit("葡萄",100);                  //類(lèi)的實(shí)例化并傳遞參數(shù)
?>

以上代碼在PHP8中的運(yùn)行結(jié)果如下:

析構(gòu)函數(shù)被調(diào)用了,對(duì)象Fruit被銷(xiāo)毀了!
析構(gòu)函數(shù)被調(diào)用了,對(duì)象Fruit被銷(xiāo)毀了!

PHP8使用的是一種“社圾回收”機(jī)制,能夠自動(dòng)清除不再使用的對(duì)象并釋放內(nèi)存,也就是說(shuō)即使不使用unset()函數(shù),析構(gòu)方法也會(huì)被自動(dòng)調(diào)用,這里只是明確一下析構(gòu)方法在何時(shí)被調(diào)用。在一般情況下是不需要手動(dòng)創(chuàng)建析構(gòu)方法的。

到此為止,PHP8中的構(gòu)造方法和析構(gòu)方法這兩個(gè)知識(shí)點(diǎn)就講解完畢了。



本文地址:http://003188.cn/php8zhongdegouzaofangfahexigoufangfa.html
碼字不易,打個(gè)賞唄
楊澤業(yè)感謝你的支持!

猜你喜歡

面向?qū)ο缶幊痰膸讉€(gè)問(wèn)題總結(jié)-PHP8知識(shí)詳解

導(dǎo)讀:面向?qū)ο缶幊痰膸讉€(gè)問(wèn)題總結(jié):1、類(lèi)和對(duì)象的關(guān)系?2、方法與函數(shù)的區(qū)別?3、靜態(tài)變量越多越好嗎?4、抽象類(lèi)和類(lèi)有何不同?

2023-10-07  分類(lèi):PHP學(xué)堂  瀏覽:871次


在PHP8中使用instanceof操作符檢測(cè)對(duì)象類(lèi)型-PHP8知識(shí)詳解

導(dǎo)讀:繼承特性簡(jiǎn)化了對(duì)象、類(lèi)的創(chuàng)建,增加了代碼的可重用性。但是PHP只支持單繼承,如果想實(shí)現(xiàn)多繼承,就需要使用接口。PHP可以實(shí)現(xiàn)多個(gè)接口。

2023-10-04  分類(lèi):PHP學(xué)堂  瀏覽:783次


使用關(guān)鍵字interface來(lái)聲明使用接口-PHP8知識(shí)詳解

導(dǎo)讀:繼承特性簡(jiǎn)化了對(duì)象、類(lèi)的創(chuàng)建,增加了代碼的可重用性。但是PHP只支持單繼承,如果想實(shí)現(xiàn)多繼承,就需要使用接口。PHP可以實(shí)現(xiàn)多個(gè)接口。

2023-10-04  分類(lèi):PHP學(xué)堂  瀏覽:823次


使用關(guān)鍵字abstract 聲明抽象類(lèi)-PHP8知識(shí)詳解

導(dǎo)讀:抽象類(lèi)只能作為父類(lèi)使用,因?yàn)槌橄箢?lèi)不能被實(shí)例化。抽象類(lèi)使用關(guān)鍵字abstract 聲明。

2023-10-01  分類(lèi):PHP學(xué)堂  瀏覽:788次


PHP8中的構(gòu)造方法和析構(gòu)方法-PHP8知識(shí)詳解

導(dǎo)讀:今日分享的內(nèi)容是PHP8中的構(gòu)造方法和析構(gòu)方法,我們把構(gòu)造方法和析構(gòu)方法這兩個(gè)方法分開(kāi)來(lái)講:

2023-09-21  分類(lèi):PHP學(xué)堂  瀏覽:807次


PHP8的類(lèi)與對(duì)象的基本操作之類(lèi)常量-PHP8知識(shí)詳解

導(dǎo)讀:PHP 8引入了一種新的特性,稱(chēng)為類(lèi)常量(Class Constants)。類(lèi)常量是在類(lèi)中定義的常量,類(lèi)似于全局常量,但作用域僅限于定義它們的類(lèi)。 在PHP 8中,類(lèi)常量的作用域被限制在定義它們的類(lèi)中。這意味著只有類(lèi)的成員方法或靜態(tài)方法才能訪(fǎng)問(wèn)類(lèi)常量。在其他上下文中,如類(lèi)的實(shí)例方法或全局范圍內(nèi),類(lèi)常量將不可見(jiàn)。

2023-09-21  分類(lèi):PHP學(xué)堂  瀏覽:715次


PHP8的類(lèi)與對(duì)象的基本操作之成員變量-PHP8知識(shí)詳解

導(dǎo)讀:成員變量是指在類(lèi)中定義的變量。在類(lèi)中可以聲明多個(gè)變量,所以對(duì)象中可以存在多個(gè)成員變量,每個(gè)變量將存儲(chǔ)不同的對(duì)象屬性信息。

2023-09-21  分類(lèi):PHP學(xué)堂  瀏覽:819次


PHP8的類(lèi)與對(duì)象的基本操作之類(lèi)的實(shí)例化-PHP8知識(shí)詳解

導(dǎo)讀:定義完類(lèi)和方法后,并不是真正創(chuàng)建一個(gè)對(duì)象。類(lèi)和對(duì)象可以描述為如下關(guān)系。類(lèi)用來(lái)描述具有相同數(shù)據(jù)結(jié)構(gòu)和特征的“一組對(duì)象”,“類(lèi)”是“對(duì)象”的抽象,而“對(duì)象”是“類(lèi)”的具體實(shí)例,即一個(gè)類(lèi)中的對(duì)象具有相同的“型”,但其中每個(gè)對(duì)象卻具有各不相同的“值”。

2023-09-21  分類(lèi):PHP學(xué)堂  瀏覽:813次


PHP8的類(lèi)與對(duì)象的基本操作之成員方法-PHP8知識(shí)詳解

導(dǎo)讀:成員方法是指在類(lèi)中聲明的函數(shù)。在類(lèi)中可以聲明多個(gè)函數(shù),所以對(duì)象中可以存在多個(gè)成員方法。類(lèi)的成員方法可以通過(guò)關(guān)鍵字進(jìn)行修飾,從而控制成員方法的商用權(quán)限。

2023-09-18  分類(lèi):PHP學(xué)堂  瀏覽:788次


PHP8的類(lèi)與對(duì)象的基本操作之定義類(lèi)-PHP8知識(shí)詳解

導(dǎo)讀:在PHP8中,定義類(lèi)的關(guān)鍵字是class,定義類(lèi)的語(yǔ)法格式如下: 其中,修飾符是可選項(xiàng),常見(jiàn)的修飾符包括public、private和protected。

2023-09-18  分類(lèi):PHP學(xué)堂  瀏覽:815次