PHP5中物件導向的常用關鍵字和魔術方法

2021-09-30 08:34:26 字數 2342 閱讀 2385

一,常用關鍵字。

a,final

1,不能修飾成員屬性。只能修飾類和類中的方法。

2,使用final修飾的類不能被子類繼承!

3,使用final修飾的類不能被子類覆蓋(或重寫)!

作用---------------->用來使類不被繼承,方法不被覆蓋!

b,static(類級別)

1,可以將類中的成員(屬性,方法)標識為靜態的,但不能修飾類!

2,(儲存在記憶體的「資料段」)

3,修飾的成員屬性可以被同乙個類中的所有物件共享。

4,靜態資料是在類第一次被載入時分配到記憶體中的,以後再用到類時直接從「資料段」中獲取。

5,只要在程式中使用到這個類(類名出現即類被載入),那麼這個類就被載入了。

注意:靜態的成員(方法,屬性)都要使用類名去訪問,不需用(不要用)建立物件,就可以呼叫。

格式:類名::靜態成員屬性(方法)---------物件內外均為此格式!

注意:如果在類中使用或者訪問靜態成員,可以使用self代表本類,這樣在修改了類名的時候,可以不用修改「類名」的引用!

6,靜態方法(static修飾的)不能訪問非靜態的成員。(在非靜態的方法中可以訪問靜態成員)因為非靜態的成員必須用物件來訪問,這時訪問內部的成員就需要使用$this關鍵字。但是靜態方法是直接用類名訪問的,即根本沒有例項化物件,不存在物件,則$this關

鍵字也不知道指向哪個物件,所以靜態方法(static修飾的)不能訪問非靜態的成員。

所以,如果確定乙個方法不使用非靜態成員,那麼可以將此方法宣告為靜態方法!

c,const

1,只能修飾成員屬性。

2,類中宣告常量使用const關鍵字。

3,格式為:和define一樣。為----------->const ip = "192.168.1.1" ;

4,訪問方式和靜態成員屬性一致。在類外部---------->類名::常量名。在類內部---------------->self::常量名。

5,類中的常量一定要在宣告時賦值。(儲存在「資料段」)

二,常用魔術方法。

a,__call();

1,在呼叫物件中不存在的方法時,__call()魔術方法會自動呼叫

2,處理一些不存在方法的錯誤呼叫。

3,這個方法需要兩個引數。

function __call($methodname,$args){

b,__tostring();

1,用來快速讀取物件用字串表示的最便捷方法。

2,直接輸出物件的引用時自動呼叫。

3,該方法必須返回乙個字串。

c,__clone();

1,複製(轉殖)物件使用clone處理---------->$p1 = clone $object。

2,__clone()是在轉殖物件的時候自動呼叫。

3,只要乙個物件一誕生,就要有初始化的動作。

4,和構造方法__construct()相似,它是為轉殖出來的副本物件初始化。

5,在__clone()方法中$this關鍵字代表的是副本物件。($that代表原本物件。)

d,__autoload();

1,其他的魔術方法都是在類中新增起作用的,這是唯一乙個不在類中新增的方法。

2,在類外部新增的方法,可以自動載入類!

3,只要在頁面中使用到乙個類,就會自動將類名傳給__autoload(類名引數)類名引數。

物件序列化(序列化):將乙個物件轉為二進位制串。

1,將物件長時間儲存在資料庫或檔案時使用物件序列化。

2,將物件在多個php檔案中傳輸時使用物件序列化。

serialize():引數是乙個物件,返回這個物件序列化後的二進位制串。------------序列化

unserialize():引數是物件的二進位制串,返回來的就是原序列化之前的物件。----------------反序列化

e,__sleep();

1,在物件序列化時自動呼叫的方法。

2,可以將乙個物件部分序列化。(只要這個方法中返回乙個陣列,陣列中有幾個成員屬性,就序列化幾個屬性。如果不加這個方法,則所有成員都被序列化!)

f,__wakeup();

1,在物件反序列化時自動呼叫的方法。

2,可以將乙個物件部分反序列化。(也是物件重新誕生的過程------>__construct(),__wakeup(),__clone())

PHP5中Static和Const關鍵字

1 static static要害字在類中是,描述乙個成員是靜態的,static能夠限制外部的訪問,因為static後的成員是屬於類的,是不屬於任何物件例項,其他類是無法訪問的,只對類的例項共享,能一定程式對該成員盡心保護。類的靜態變數,非常類似全域性變數,能夠被所有類的例項共享,類的靜態方法也是一...

php物件導向(OOP) final關鍵字

這個關鍵字只能用來定義 類和定義 方法,不能使用final這個關鍵字來定義成員屬性,因為final是常量的意思,我們在php裡定義常量使用的是define 函式,所以不能使用final來定義成員屬性。使用final關鍵標記的類不能被繼承 final class person class studen...

5 物件導向 中之關鍵字 super

1.super 關鍵字可以理解為 父類的 2.可以用來呼叫的結構 屬性 方法 構造器 3.super呼叫屬性 方法 3.1 我們可以在子類的方法或構造器中。通過使用 super.屬性 或 super.方法 的方式,顯式的呼叫父類中宣告的屬性或方法。但是,通常情況下,我們習慣省略 super.3.2 ...