首頁  >  文章  >  後端開發  >  (進階篇)PHP物件導向- 類別與對象

(進階篇)PHP物件導向- 類別與對象

黄舟
黄舟原創
2017-02-06 10:16:14993瀏覽

以下是文章正文:

基本概念

物件導向程式設計(Object Oriented Programming, OOP, 物件導向程式設計)是一種電腦程式架構。 OOP 的一個基本原則是電腦程式是由單一能夠發揮子程式作用的單元或物件組合而成。 OOP 達到了軟體工程的三個目標:重複使用性、靈活性和擴展性。

PHP 在 4.0 版本之後完善了對 OOP 的支援了。對於小型的應用,使用傳統的過程化程式設計可能更簡單也更有效率。然而對於大型的複雜應用時,OOP 就是一個必須考慮的選擇。

類是具有相同屬性和服務的一組物件的集合。它為屬於該類別的所有物件提供了統一的抽象描述,其內部包括屬性和服務兩個主要部分。在物件導向的程式語言中,類別是一個獨立的程式單位,它應該有一個類別名稱並包含屬性說明和服務說明兩個主要部分

物件

物件是系統中用來描述客觀事物的一個實體,它是構成系統的一個基本單位。一個物件由一組屬性和對這組屬性進行操作的一組服務組成。

類與對象的關係就如模具和鑄件的關係,類別的實例化結果就是對象,而對一類對象的抽象就是類別。

關於物件導向的程式設計涉及的內容很廣泛,本教學只介紹基本的概念與在 PHP 中的應用。

使用關鍵字 class 來聲明一個類,後面緊跟著類的名字,主體用 {} 符號括起來。

語法:

class class_name{ ...... }

類別裡麵包含了屬性和方法。

屬性

在類別的主體中,可以宣告叫做屬性的特殊變數。在 PHP V4 中,屬性必須用關鍵字 var 呼叫。這仍然是合法的語法,但主要是為了向後相容。在 PHP V5 中,屬性必須宣告為 public、private 或 protected。可以在 關鍵字:在此我們是否可以有一點隱私?中閱讀有關這些限定詞的內容。但現在在例子中將所有屬性宣告為 public。清單 1 顯示一個聲明了兩個屬性的類別。

聲明兩個屬性的類

class Dictionary {
   public $translations = array();
   public $type ="En";
}

舉個例子說明,如果定義一個 人 的類,那麼人的 姓名、年齡、性別 等等便可以看做 人 這個類的屬性。

方法

透過在類別定義中聲明函數,即創建了類別的方法。

語法:

class class_name{ function function_name(arg1,arg2,……) { 函数功能代码 } }

类的应用

一个定义了属性和方法的类就是一个完整的类了,可以在一个类里面包含一个完整的处理逻辑。使用 new 关键字来实例化一个对象以便应用类里面的逻辑。可以同时实例化多个对象。

语法:

object = new class_name();

实例化一个对象后,使用 -> 操作符来访问对象的成员属性和方法。

语法:

object->var_name; object->function_name;

如果要在定义的类里面访问成员的属性或者方法,可以使用伪变量 $this 。$this 用于表示 当前对象 或 对象本身 。

例子:

<?php 
class 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 应用。

以上就是(进阶篇)PHP面向对象- 类与对象的内容,更多相关内容请关注PHP中文网(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn