PHP中的構造方法和析構方法你知道怎麼用了嗎?

叱吒少帥(少帥)發表於2020-09-23

構造方法和析構方法

php中的構造方法是:__construct()

析構方法是: __destruct()

類似於python中的__init____del__

<?php
// 建立一個人類
class Person {
    // 下面是人的成員屬性
    /*
    var $name;  // 人的名子
    var $sex;   // 人的性別
    var $age;   // 人的年齡
 */
    // 定義一個構造方法引數為姓名$name、性別$sex和年齡$age
    function __construct($name, $sex, $age) {
        // 通過構造方法傳進來的$name給成員屬性$this->name賦初使值
        $this->name = $name;
 
        // 通過構造方法傳進來的$sex給成員屬性$this->sex賦初使值
        $this->sex = $sex;
 
        // 通過構造方法傳進來的$age給成員屬性$this->age賦初使值
        $this->age = $age;
    }
 
    // 這個人的說話方法
    function say() {
        echo "我的名子叫:" . $this->name . " 性別:" . $this->sex . " 我的年齡是:" . $this->age;
    }
}
// 通過構造方法建立3個物件$p1、p2、$p3,分別傳入三個不同的實參為姓名、性別和年齡
$p1 = new Person("張三","男", 20);
$p2 = new Person("李四","女", 30);
$p3 = new Person("王五","男", 40);
// 下面訪問$p1物件中的說話方法
$p1->say();
// 下面訪問$p2物件中的說話方法
$p2->say();
// 下面訪問$p3物件中的說話方法
$p3->say();
?>

輸出的結果為:

我的名子叫:張三 性別:男 我的年齡是:20我的名子叫:李四 性別:女 我的年齡是:30我的名子叫:王五 性別:男 我的年齡是:40

解構函式:

<?
// 建立一個人類
class Person {
    // 下面是人的成員屬性
    /*
    var $name;  // 人的名子
    var $sex;   // 人的性別
    var $age;   // 人的年齡
 */
    // 定義一個構造方法引數為姓名$name、性別$sex和年齡$age
    function __construct($name, $sex, $age) {
        // 通過構造方法傳進來的$name給成員屬性$this->name賦初使值
        $this->name = $name;
         
        // 通過構造方法傳進來的$sex給成員屬性$this->sex賦初使值
        $this->sex = $sex;
         
        // 通過構造方法傳進來的$age給成員屬性$this->age賦初使值
        $this->age = $age;
    }
 
    // 這個人的說話方法
    function say() {
        echo "我的名子叫:" . $this->name . " 性別:" . $this->sex . " 我的年齡是:" . $this->age;
    }
 
    // 這是一個解構函式,在物件銷燬前呼叫
    function __destruct() {
        echo "再見" . $this->name;
    }
}
 
// 通過構造方法建立3個物件$p1、p2、$p3,分別傳入三個不同的實參為姓名、性別和年齡
$p1 = new Person("張三", "男", 20);
$p2 = new Person("李四", "女", 30);
$p3 = new Person("王五", "男", 40);
 
// 下面訪問$p1物件中的說話方法
$p1->say();
 
// 下面訪問$p2物件中的說話方法
$p2->say();
 
// 下面訪問$p3物件中的說話方法
$p3->say();
?>

輸出的結果為:

我的名子叫:張三 性別:男 我的年齡是:20我的名子叫:李四 性別:女 我的年齡是:30我的名子叫:王五 性別:男 我的年齡是:40
再見王五
再見李四
再見張三

相關文章