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]...
jollen 發表於 October 27, 2006 4:00 PM
我所在的類別。 member function 可以透過 $this 變數來參考自己類別裡的 data member 或 member function,例如我們在 Cart 類別裡宣告 $item 的變數,member function 就可這麼使用: $this->items; 表示參考自己所在類別裡的 $items 變數。要注意的是,底下的寫法是錯誤的,而且初學者也很容易混淆: $this->$items; 要注意參考變數 (data member) 時,不需加上 $,我們可以將 this->items 整個看成是變數名稱,因此寫成 $this->items 才對。...
jollen 發表於 October 27, 2006 4:00 PM
class 可以繼承自其它的 class 的所有內容,包括 data members 和 member functions,這樣的 class 稱為 derived class,例如: <?php class Shopping [[extends Cart]] { var $customer, $telephone; function person($name, $tel) { $this->customer = $name; $this->telephone = $tel } } ?> 表示 shopping 這個類別是繼承自 Cart 類別,當然...
jollen 發表於 October 27, 2006 4:01 PM
與 class 同名的 member function 即為 constructor (建構子),constructor 在物件生成時自動執行,例如: <?php class Shopping extends Cart { var $customer, $telephone; function Shopping() { $this->customer = "GUEST"; $this->telephone = "UNKNOW"; } function person($name, $tel) { $this->customer = $name; $this->telephone = $tel } }...
jollen 發表於 October 27, 2006 4:01 PM
熟悉 C++ 朋友對於 :: 運算子一定不莫生,當物件還未生成時,我們可以使用 :: 運算子來呼叫類別裡的函數。 請看底下的範例: <?php class base_cart { function base_cart() { echo "Shopping cart is based on PHP 4."; } } class Cart extends base_cart { var $shop; var $items; function init() { $this->shop = "Aloud...