天天看點

PHP面向對象摘錄

一、了解面向對象基礎知識

面向對象的優勢:

1、具有擴充現有代碼的功能

2、允許類型提示,能夠對傳遞給函數的變量進行更加嚴格的控制

3、允許使用現有的設計模式,可以用來解決常見的軟體設計問題并使用調試更加容易

成員變量和成員方法:

public(公有的)表示其修飾的成員可以通過PHP程式全局通路

private(私有的)表示其修飾的成員僅可以被定義它的類通路

protected(受保護的)表示其修飾的成員僅可以被定義它的類及派生類通路 

static(靜态的)表示成員不會綁定到類的某一特定的執行個體,可以被類的任意執行個體通路

abstract(抽象的)抽象方法标志抽象類,必須定義類的所有子類加以實作

final(終态的)表示其修飾的成員無法在派生類中重新定義,是以它定義的功能無法修改

const(常量)将類内部的變量聲明為常量,大寫字母表示      

魔術方法和常量 :

__CLASS__ :該值總是與定義的該調用函數的類名相同

__FILE__ :指常量所指向檔案的檔案名稱

__LINE__:指輸出代碼中的位置行

__DIR__ :指檔案所在的位置絕對目錄

__FUNCTION__和__METHOD__ :指函數或方法所定義的名稱

__NAMESPACE__ :指目前的命名空間

__constructor() :構造函數表示類被執行個體成對象時所調用的方法 --new關鍵字

__destructor() :析構函數表示對象被垃圾回收時調用的方法 --null或unset()

__toString() :當對象被當作字元串輸出時所調用的方法

__sleep():當對象被序列化時調用的方法 ,它傳回一個數組,用來清理用儲存的成員變量

__wakeup():當序列化的對象被喚醒時調用的方法 ,用來重新打開句柄

__set():當修改一個不存在的成員變量時調用的方法

__get(): 當調用一個不存在的成員變量時調用的方法

__unset(): 當銷毀一個不存在的成員變量時調用的方法

__isset(): 當檢測一個不存在的成員變量時調用的 方法

__call():當調用一個不存在的成員函數時調用的 方法

__callStatic():當調用一個不存在的靜态方法時調用的 方法

__set_state():用來檢查應用程式是否進行多次動态代碼求值 var_export()調用時

__clone():當對象被克隆時調用的方法

__invoke():将對象作為函數使用時調用的方法      

接口:

interface (接口)的含義

接口是用來定義功能的結構體

接口内的功能必須通過其他類來實作

接口并不會規定某個功能的内部實作,可以把借口看作類需要遵循的模版

接口是定義方法簽名和傳回值類型,是以類不是繼承借口,而是實作接口implements

與類相關的一些關鍵字和函數:

new:執行個體化類為一個對象

instanceoof:表示左操作數的類型是右操作數的類型的子類則傳回真

get_class():傳回執行個體化對象的類名

serialize() :序列化對象,用來存儲應用程式的狀态及緩存全部對象

unserialize():反向序列化 将序列化過的對象傳回成對象

var_export():輸出或傳回一個變量的結構資訊以字元串表示,即PHP的源代碼      

設計模式:

Singleton(單例):表示類隻能執行個體化一次,生成一個全局狀态且單一根對象

Multiton(多例):表示類可以多次執行個體化,確定同一個對象的多個執行個體不會發生沖突

Proxy(代理):表示所有的成員方法和變量都來源于目标類,本類應用來記錄通路資訊

Facade(外觀):抽象化複雜的功能,将子系統處理各請求的細節委托成合适的責任

Decorator(裝飾者):表示對象執行個體化後,通過多個裝飾者類來擴充執行個體化對象

Factory(工廠):  對象調用某一條件的方法時,依照判斷條件來擷取到子類的對象執行個體 

Observer Pattern(觀察者模式):當釋出者對象生成事件後,觀察者必須掌握廣播了它的監聽事件的對象

Publisher/subscriber(釋出者/訂閱者):當應用程式在何時何處觸發時,都将訂閱事件的通知

Lazy initialization(延遲初始化):表示真正需要該對象時才進行初始化

設計模式請看 : PHP設計模式

轉載于:https://www.cnblogs.com/linzhenjie/archive/2012/08/06/php-oop.html