PHP 類與對象,PHP對象
基本概念
物件導向編程(Object Oriented Programming, OOP, 物件導向程式設計)是一種電腦編程架構。OOP 的一條基本原則是電腦程式是由單個能夠起到子程式作用的單元或對象組合而成。OOP 達到了軟體工程的三個目標:重用性、靈活性和擴充性。
PHP 在 4.0 版本之後完善了對 OOP 的支援了。對於小型的應用,使用傳統的過程化編程可能更簡單也更有效率。然而對於大型的複雜應用時,OOP 就是一個不得不考慮的選擇。
類
類是具有相同屬性和服務的一組對象的集合。它為屬於該類的所有對象提供了統一的抽象描述,其內部包括屬性和服務兩個主要部分。在物件導向的程式設計語言中,類是一個獨立的程式單位,它應該有一個類名並包括屬性說明和服務說明兩個主要部分。
對象
對象是系統中用來描述客觀事物的一個實體,它是構成系統的一個基本單位。一個對象由一組屬性和對這組屬性進行操作的一組服務組成。
類與對象的關係就如模具和鑄件的關係,類的執行個體化結果就是對象,而對一類對象的抽象就是類。
關於物件導向的編程涉及的內容很廣泛,本教程只介紹基本的概念與在 PHP 中的應用。
類
使用關鍵字 class 來聲明一個類,後面緊跟類的名字,主體用 {} 符號括起來。
文法:
class class_name{ ......}
類裡麵包含了屬性和方法。
屬性
通過在類定義中使用關鍵字 var 來聲明變數,即建立了類的屬性,也叫類的成員屬性。
文法:
class class_name{ var $var_name;}
舉個例子說明,如果定義一個 人 的類,那麼人的 姓名、年齡、性別 等等便可以看做 人 這個類的屬性。
方法
通過在類定義中聲明函數,即建立了類的方法。
文法:
class class_name{ function function_name(arg1,arg2,……) { 函數功能代碼 }}類的應用
一個定義了屬性和方法的類就是一個完整的類了,可以在一個類裡麵包含一個完整的處理邏輯。使用 new 關鍵字來執行個體化一個對象以便應用類裡面的邏輯。可以同時執行個體化多個對象。
文法:
object = new class_name();
執行個體化一個對象後,使用 -> 操作符來訪問對象的成員屬性和方法。
文法:
object->var_name;object->function_name;
如果要在定義的類裡面訪問成員的屬性或者方法,可以使用偽變數 $this 。$this 用於表示 當前對象 或 對象本身 。
例子:
<?phpclass Person { //人的成員屬性 var $name; //人的名字 var $age; //人的年齡 //人的成員 say() 方法 function say() { echo "我的名字叫:".$this->name."<br />";echo "我的年齡是:".$this->age; }} //類定義結束//執行個體化一個對象$p1 = new Person();//給 $p1 對象屬性賦值$p1->name = "張三"; $p1->age = 20;//調用對象中的 say()方法$p1->say();?>
運行該例子,輸出:
我的名字叫:張三我的年齡是:20
上面的例子示範了一個簡單的基於物件導向的 PHP 應用。