首頁 >後端開發 >PHP問題 >php什麼是建構函數

php什麼是建構函數

(*-*)浩
(*-*)浩原創
2019-09-18 14:20:123706瀏覽

php建構子是類別中的一個特殊函數,當使用 new 運算元建立一個類別的實例時,建構子將會自動呼叫。

php什麼是建構函數

當函數與類別同名時,這個函數將成為建構子。

如果一個類別沒有建構函數,則呼叫基底類別的建構函數,如果有的話,則呼叫該建構函數。 (推薦學習:PHP程式設計從入門到精通

<?php
class Auto_Cart extends Cart {
    function Auto_Cart(){
        $this -> add_item("10", 1);
    }
}
?>

上文定義了一個Auto_Cart 類,即Cart 類別加上一個建構函數,當每次都使用「new」建立一個新的Auto_Cart 類別實例時,建構子會自動呼叫並將一件商品的數目初始化為「10」。

建構函式可以使用參數,而且這些參數可以是可選的,它們可以讓建構子更有用。為了依然可以不帶參數地使用類,所有建構函數的參數應該提供預設值,使其可選。

<?php
class Constructor_Cart extends Cart {
    function Constructor_Cart($item = "10", $num = 1){
        $this -> add_item($item, $num);
    }
}
//买些同样的无聊老货
$default_cart = new Constructor_Cart;
//买些实在货...
$different_cart = new Constructor_Cart("20", 17);
?>
void __construct ([mixed $args [, $... ]])

PHP 5 允行開發者在一個類別中定義一個方法作為建構子。具有建構函式的類別會在每次建立物件時先呼叫此方法,所以非常適合在使用物件之前做一些初始化工作。

注意

如果子類別中定義了建構函式則不會暗中呼叫其父類別的建構子。要執行父類別的建構函數,需要在子類別的建構子中呼叫parent::__construct()。

使用新標準的建構子:

<?php
class BaseClass{
    function__construct(){
        print "InBaseClassconstructor\n";
    }
}
 
class SubClass extends BaseClass{
    function__construct(){
        parent::__construct();
        print "InSubClassconstructor\n";
    }
}
 
$obj = new BaseClass();
$obj = new SubClass();
?>

以上是php什麼是建構函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn