中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

構造方法與析構方法

發布時間:2020-07-12 05:05:52 來源:網絡 閱讀:428 作者:yuxin1234567890 欄目:網絡安全

    構造方法與析構方法是對象中的兩個特殊方法,它們都與對象的生命周期有關。構造方法是對象創建完成后第一個被對象自動調用的方法,這也是我們在對象中使用構造方法的原因。而析構方法是對象在銷毀之前最后一個被對象自動調用的方法,這也是我們在對象中使用析構方法的原因。所以通常使用構造方法完成一些對象的初始化工作,使用析構方法完成一些對象在銷毀前的清理工作。

1、構造方法

   在類中聲明構造方法的格式如下:

function __construct(參數列表){       //構造方法名稱是以兩個下劃線開始的                                                    __construct()

      //方法體,通常用來對成員屬性進行初始化賦值

}

<?php

class person{

//下面是聲明人的成員屬性,都是沒有初值的,在創建對象時,使用構造方法賦初值

var $name;

var $sex;

var $age;


//聲明一個構造方法,將來創建對象時,為對象的成員屬性賦予初值,參數中都使用了默認參            數

function __construct($name="",$sex="男",$age="1"){

$this->name=$name;       //在創建對象時,使用傳入的參數$name為成員屬性                                                 $this->name賦初值

$this->sex=$sex;         //在創建對象時,使用傳入的參數$sex為成員屬性$this-                                             >sex賦初值

$this->age=$age;         //在創建對象時,使用傳入的參數$age為成員屬性$this-                                            >age賦初值

}

function say(){

echo "我的名字:".$this->name.";我的性別:".$this->sex.";我的年                                  齡:".$this->age."。<br/>";

}

function run(){

echo $this->name."在走路<br/>";

}

}


//下面三行中實例話person類的三個實例對象,并使用構造方法分別為新創建的成員屬性賦予初值

$person1=new person("張三","男","40");        //創建對象$person1時會自動執行構造方法,將全                                                  部參數傳給它

$person2=new person("李四","女");        //創建對象$person1時會自動執行構造方法,傳入前兩個                                             參數

$person3=new person("王五");        //創建對象$person1時會自動執行構造方法,只傳入一個參數


$person1->say();

$person1->run();


$person2->say();

$person2->run();


$person3->say();

$person3->run();

?>

代碼運行結果如下所示:

構造方法與析構方法


2、析構方法

   析構方法的聲明格式與構造方法相似,在類中聲明的析構方法名稱也是固定的,也是以兩個下劃線開頭的方法名“__destruct”,而且析構函數不能帶有任何參數。在類中聲明析構方法的格式如下:

function __destruct(){          //析構方法名稱是以兩個下劃線開始的__destruct()

      //方法體,通常用來完成一些在對象銷毀前的清理任務

}

<?php

class person{

var $name;

var $sex;

var $age;


function __construct($name,$sex,$age){

$this->name=$name;       

$this->sex=$sex;         

$this->age=$age;        

}

function say(){

echo "我的名字:".$this->name.";我的性別:".$this->sex.";我的年齡:".$this->age."。<br/>";

}

function run(){

echo $this->name."在走路<br/>";

}


//聲明的析構方法,在對象銷毀前自動調用

function __destruct(){

echo "再見".$this->name."<br/>";

}

}


$person1=new person("張三","男","40");

$person1=null;                             //第一個對象將失去引用

$person2=new person("李四","女","20");       

$person3=new person("王五","男","50");        

?>
代碼運行結果為:

構造方法與析構方法

    因為對象的引用都是存放在棧內存中的,由于棧的后進先出的特點,最后創建的對象引用會被最先釋放,所以先自動調用第三個對象的析構方法,最后才自動調用第二個對象的析構方法。


向AI問一下細節

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

AI

阜南县| 万荣县| 密山市| 富民县| 玛沁县| 霍城县| 城步| 响水县| 泾源县| 遵义县| 长兴县| 三亚市| 汪清县| 滕州市| 镇雄县| 西贡区| 临汾市| 广德县| 中牟县| 高邮市| 沂源县| 伊川县| 诸城市| 巢湖市| 邮箱| 榆树市| 蓬溪县| 都江堰市| 色达县| 襄樊市| 岱山县| 玛沁县| 赣州市| 耿马| 钟祥市| 鸡东县| 西宁市| 乌兰察布市| 阿拉善盟| 共和县| 南皮县|