首頁 >後端開發 >php教程 >php物件導向(OOP)—不同php版本建構方法的繼承與相容

php物件導向(OOP)—不同php版本建構方法的繼承與相容

WBOY
WBOY原創
2016-08-08 09:23:201200瀏覽

PHP4.x 版本:

PHP 4.x 的建構函式名稱與類別名稱相同。

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

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

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

$this->[父類別的建構子名稱()]

class base1 {
) {
echo 'this is base1 construct';
}}
class class1 extends base1 {

function class1() { is class1 construct';
}
}$c1 = new class1;
PHP5.x 版本:
PHP5.0 以上版本對類別的功能進行了很大的擴充。類別的建構子統一命名為__construct()。

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

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

1、如子類別不定義建構子__construct(),則父類別的建構子預設會被繼承下來,且會自動執行。

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

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

parent::__construct();

class base2 {

function __confer echo 'this is base2 construct';

}
function __destruct() {}}
class class2 extends base2 {
function __(); echo 'this is class2 construct';
}}


注意parent::__construct(); 語句不一定必須放在子類別的建構子中。放在子類別的建構函式中僅僅保證了其在子類別被實例化時會自動執行。
PHP4.0 和 5.0 類別建構子的相容問題:在 PHP5.0 以上版本裡,也相容了 4.0 版本的建構子的定義規則。如果同時定義了4.0的建構子和 __construct()函數,則__construct() 函數優先。
為了讓類別程式碼同時相容PHP4.0 和5.0,可以採取以下的方式:class class3 {
function __construct() //for PHP5.0

{

';

}

function class3() //for PHP4.0


{
$this -> __construct();$33
$this -> __construct();上面的內容引自"小炒花生米
"大哥,謝謝大哥的分享。
以上就介紹了php物件導向(OOP)—不同php版本建構方法的繼承與相容,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn