« 47. 如何設計可變長度參數的函數? | (回到Blog入口) | 49. "$this" 這是什麼東西? »

48. 如何自訂 class?

jollen 發表於 October 27, 2006 3:59 PM

PHP 也提供我們定義 class (類別) 的機制,class 稱為類別,為資料與函數的集合,class 裡的資料與函數稱為 data member 與 member function。我們來看底下這一個簡單的 class 範例:

<?php class Cart { var $items; //data member function add_item($article, $num) { //member function $this->items[$article] += $num; }
function del_item($article, $num) { //member function if ($this->item[$article] > $num) { $this->item[$article] -= $num; return true; } else { return false; } } } ?>

這是一個購物車類別定義的簡單範例,類別名稱為 Cart,Cart 類別擁有二個 member function,分別是 add_item 與 del_item,在 class 裡的 function 我們稱他們為 member function,分別是 add_item 與 del_item,用來增減物品的購買數量。

一個 class 我們可以把他想像成一個很大的資料類型,使用這樣的資料類型之前,必須做宣告的動作:

$cart = new Cart;

這樣表示我們產生了一個 Cart 類別的物件,叫做 $cart。在 Cart 類別裡有 2個 member function,$cart 物件如果要呼叫這些 member function,可以利用 「->」 運算子:

$cart->add_item("PHP Reference", "5"); 物件 member function 的名稱

呼叫 member function 時傳遞參數的方法和一般的 function 一樣。

在這裡如果讀者不懂 class 相關的觀念,也不用特意去解讀上面這段程式碼的涵意。讀者只要懂得如何產生物件,並了解如何使用這些物件即可。

本書許多範例都用到了物件,但是不會有需要自行設計 class 的場合。因此讀者不必去了解 Cart 類別的寫法涵意,範例另外用到的觀念都會隨時做說明。而 PHP 5 加入的新物件功能會在第 6 章再做介紹。

--jollen

版權聲明

請參閱頁面底部的 CC 授權條款。此外,Jollen's PHP 專欄禁止引用、修改與轉貼,如果您想與朋友分享的話,我們只允許網站連結(hyperlink)的形式。

發表一個評論

(如果你此前從未在此 Blog 上發表過評論,則你的評論必須在 Blog 主人驗證後才能顯示,請你耐心等候。)

| Top | Jollen's Forum |
Jollen's PHP 專欄採用 Attribution-NonCommercial-NoDerivs 2.5 授權條款
Copyright(c) 2001-2007,2010 www.jollen.org