構造方法和析構方法

構造函數:

     

     1、在實例化類的時候會被自動觸發;

     2、一個類只有一個構造函數;

     3、一般用於初始化操作;

     4、沒有返回值。

     語法:

     

function __construct([參數列表])
{
     .........
}

例子:

<?php
class Person
{   
    public $name;
    public $sex = '女';
    public $age;
    public $money;
    public $face;
    //構造方法
    public function __construct($name,$age,$money,$face = '女人都是漂亮的')
    {
         //屬性初始化
         $this->name = $name;
         $this->age = $age;
         $this->money = $money;
         $this->face = $face;
    }
    public function say()
    {
        echo "我的名字是{$this->name},<br>我的年齡是{$this->age},<br>我有{$this->money}元錢,<br>{$this->face}";
    }

//實例化類並賦值

$lixiaolou = new Person('李小龍',11,1234);
$lixiaolou->say();

輸出的結果:

wKiom1fWnBqSWkVHAAAkmSbV3uc760.png-wh_50


spacer.gif

析構函數:

         1、 銷燬一個類之前執行析構函數

         2、先調用的後消失 後調用的先消失

         3、不能帶參數

語法:

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

例子:


在上一個構造函數源代碼的後面添加

public function __destruct()
    {
        echo "消失了{$this->name}<br>";
    }

輸出結果:

wKioL1fWnCuR6OiKAAAkKpb60G0311.png-wh_50

spacer.gif

注意:析構函數是   先調用的後消失 後調用的先消失

<?php
/**
* 定義一個“人類”
*/
class Person
{   
    public $name;
    public $sex = '女';
    public $age;
    public $money;
    public $face;
    //構造方法
    public function __construct($name,$age,$money,$face = '女人都是漂亮的')
    {
         //屬性初始化
         $this->name = $name;
         $this->age = $age;
         $this->money = $money;
         $this->face = $face;
    }
    public function say()
    {
        echo "我的名字是{$this->name},<br>我的年齡是{$this->age},<br>我有{$this->money}元錢,<br>{$this->face}";
        $this->daojiu();
    }
    public function daojiu()
    {
        echo "給老闆們倒酒<br/>";
    }
        //先調用的後消失 後調用的先消失
   //先是 陳 消失了  然後是 李小龍 消失
   public function __destruct()
    {
        echo "消失了{$this->name}<br>";
    }
}

$lixiaolou = new Person('李小龍',11,1234);
$lixiaolou->say();
 
echo "<hr>";
$senlin = new Person('陳',12,123);
$senlin->say();


輸出:

spacer.gifwKiom1fWnDvArSMXAABQuqMS9wc321.png-wh_50



注意:調用的順序和銷燬的順序是不一樣的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章