繼承

通常需要這樣一些類,這些類與其它現有的類擁有相同變量和函數。實際上,定義一個通用類用於所有的項目,並且不斷豐富這個類以適應每個具體項目將是一個不錯的練習。為了使這一點變得更加容易,類可以從其它的類中增加出來。增加或派生出來的類擁有其基類(這稱為「繼承」,只不過沒人死)的所有變量和函數,並包括所有派生類中定義的部分。類中的元素不可能減少,就是說,不可以登出任何存在的函數或是變量。一個擴充類總是依賴一個單獨的基類,也就是說,不支援多繼承。使用關鍵字「extends」來增加一個類。

<?php
class Named_Cart extends Cart {
    var 
$owner;

    function 
set_owner ($name) {
        
$this->owner $name;
    }
}
?>

上述示例定義了名為 Named_Cart 的類,該類擁有 Cart 類的所有變量和函數,加上附加的變量 $owner 和一個附加函數 set_owner()。現在,以標準的模式建立了一個有名字的購物車,並且可以設定並取得該購物車的主人。而標準的購物車類的函數依舊可以在有名字的購物車類中使用:

<?php
$ncart 
= new Named_Cart;    // 新增一個有名字的購物車
$ncart->set_owner("kris");  // 給該購物車命名
print $ncart->owner;        // 輸出該購物車主人的名字
$ncart->add_item("10"1);  // (從購物車類中繼承來的功能)
?>

這個也可以叫做「父-子」關係。建立一個類,父類,並使用 extends 來建立一個基於父類的新類:子類。甚至可以使用這個新的子類來建立另外一個基於這個子類的類。

注: 類只有在定義後才可以使用!若果需要類 Named_Cart 繼承類 Cart,必須首先定義 Cart 類。若果需要建立另一個基於 Named_Cart 類的 Yellow_named_cart 類,必須首先定義 Named_Cart 類。簡捷的說:類定義的順序是非常重要的。