物件導向 PHP中類的繼承和建構函式

2021-06-14 16:13:41 字數 1113 閱讀 2365

php4.x 版本:

php 4.x 的建構函式名與類名相同。

子類的建構函式名與子類名相同(廢話)。

在子類裡父類的建構函式不會自動執行。

要在子類裡執行父類的建構函式,必須執行類似以下語句:

$this->[父類的建構函式名()]

例如:class base1

}class class1 extends base1

}$c1 = new class1;

php5.x 版本:

php5.0 以上版本對類的功能進行了很大的擴充。類的建構函式統一命名為__construct()。

子類的建構函式名也是__construct()(也是廢話)。

在子類裡父類的建構函式會不會執行,分兩種情況:

1,如子類不定義建構函式 __construct(),則父類的建構函式缺省會被繼承下來,且會自動執行。

2,如子類定義了建構函式 __construct(),因為建構函式名也是__construct(),所以子類的建構函式實際上是覆蓋(override)了父類的建構函式。這時執行的是該子類的建構函式。

這時如果要在子類裡執行父類的建構函式,必須執行類似以下語句:

parent::__construct();

例如:class base2

function __destruct()

}class class2 extends base2

}注意 parent::__construct(); 語句不一定必須放在子類的建構函式中。放在子類的建構函式中僅僅保證了其在子類被例項化時自動執行。

php4.0 和 5.0 類建構函式的相容問題:

在 php5.0 以上版本裡,還相容了 4.0 版本的建構函式的定義規則。如果同時定義了4.0的建構函式和 __construct()函式,則__construct() 函式優先。

為了使類**同時相容 php4.0 和 5.0,可以採取以下的方式:

class class3

function class3() //for php4.0

}$c3 = new class3;

PHP中類的繼承和建構函式的繼承

php4.x 版本 php 4.x 的建構函式名與類名相同。子類的建構函式名與子類名相同 廢話 在子類裡父類的建構函式不會自動執行。要在子類裡執行父類的建構函式,必須執行類似以下語句 this 父類的建構函式名 例如 class base1 class class1 extends base1 c1...

php物件導向 繼承

1 繼承是從乙個基類或者父類得到乙個或者多個派生類,也叫作子類的機制。2 建立繼承樹首先找到現有基類元素不適合放在一起的,或者不需要特殊處理的,一般化。3 子類預設繼承父類所有的public和protected方法,不繼承private方法或屬性 構造方法與繼承 1 構造方法需要傳參給父類方法。2 ...

PHP物件導向 繼承

繼承是指子類可以繼承乙個或多個父類的屬性和方法,並可以重寫或新增新的屬性或方法。通過繼承已有的類,可以逐步擴充類的功能,提高 的可重用性。關鍵字 extends php中使用關鍵字extends可實現類的繼承 語法格式 class 子類名 extends 父類名 注意 php不支援多重繼承,即乙個子...