典型的類別設計如下
class class_name { // 屬性定義 access_label $var = 'something'; // 方法定義 access_label function displayVar() { // 方法內容 } }
利用關鍵字 (keyword) class 宣告類別名稱,其後的大括弧為類別的宣告內容,裡頭用存取標籤 (access label) access_label 區分成員的權限。存取標籤有三種,分別是 public 、 private 與 protected ,這三個標籤也都屬於關鍵字。
public 成員可以由所有使用物件的地方自由呼叫, private 成員則限制在類別中呼叫,也就是類別的成員才可以使用 private 成員, protected 成員的使用範圍與 private 成員相同,但是 private 成員不能被繼承 (inheritance) , protected 成員則可以被繼承。
成員可以是屬性 (property) 或方法 (method) ,屬性就是是專屬於物件的變數 (variable) ,方法等同於函數 (function) ,一樣用 function 定義,只限物件可以使用,沒有設定存取標籤的方法預設為 public 。
舊版本的 PHP 設定屬性需要用到另一個關鍵字 var , PHP 5 以後不需要使用 var ,如果只用 var 設定屬性,就等於 public 。
使用 private 成員可達到把資料封裝 (encapsulation) 的目的,此為物件導向程式設計 (object-oriented programming) 的主要特性之一。
舉一例如下
<?php class Demo { private $a = 11; private $b = 22; function do_something() { return $this->a + $this->b; } } $demo = new Demo(); echo $demo->do_something(); /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:class01.php 功能:示範 PHP 程式 作者:張凱慶 時間:西元 2013 年 2 月 */ ?>
此例宣告了類別 Demo ,裡頭有三個成員,兩個屬性與一個方法
class Demo { private $a = 11; private $b = 22; function do_something() { return $this->a + $this->b; } }
$this 是在類別中特別的變數,用來存取同類別的其他成員,需要使用 -> 運算子
function do_something() { return $this->a + $this->b; }
自定義的屬性名稱應避免與 $this 相同,以免造成歧義。
建立物件要用 new 關鍵字,後面接類別名稱與小括弧
$demo = new Demo();
物件變數呼叫方法同樣使用使用 -> 運算子
echo $demo->do_something();
此例執行結果如下
中英文術語對照 | |
---|---|
類別 | class |
物件 | object |
關鍵字 | keyword |
存取標籤 | access label |
繼承 | inheritance |
屬性 | property |
方法 | method |
變數 | variable |
函數 | function |
封裝 | encapsulation |
您可以繼續參考
類別與物件
相關目錄
回 PHP 快速導覽
回 PHP 教材
回首頁
參考資料
http://www.php.net/manual/en/oop5.intro.php
http://www.php.net/manual/en/language.oop5.basic.php
http://www.php.net/manual/en/language.oop5.properties.php
http://www.php.net/manual/en/language.oop5.visibility.php
沒有留言:
張貼留言