PHP之物件導向的魔術方法

2021-06-29 13:59:28 字數 643 閱讀 6906

php中以兩個下劃線"__"開頭的方法被稱為魔術方法。如__construct()、__destruct()、__clone()。

1、__set()和__get()方法對私有成員進行賦值或者獲取值的操作。(不需要主動呼叫)

2、__isset()和__unset():當在類的外部使用isset()函式檢測物件中的私有成員屬性時,就會自動呼叫類中的"__isset()"方法完成對私有成員屬性的檢測操作。__unset()方法幫助unset()函式在類的外部刪除指定的私有成員屬性。

bool __isset(string name)

void __unset(string name)

3、__call()方法:當程式試圖呼叫不存在或不可見的成員方法時,php會先呼叫__call()方法來儲存方法名及其引數。__call()方法包含兩個引數,即方法名和方法引數,其中,方法引數是以陣列形式存在的。

4、__tostring()方法:當使用echo或print輸出物件時,將物件轉化為字串。如果沒有__tostring()方法,直接輸出物件將會發生致命錯誤。輸出物件時應注意:echo或print後直接跟要輸出的物件,中間不要有任何多餘的字元。

5、__autoload():自動例項化需要使用的類。

PHP物件導向 魔術方法

get name 觸發時機 當呼叫乙個不訪問的成員屬性的時候,會自動觸發,可以利用這個方法來完成對不可呼叫的屬性進行呼叫,但是不能設定值 set name,value 觸發時機 當給乙個不可訪問的成員屬性賦值的時候,會自動觸發這個方法,可以利用這個方法完成對不可以訪問的屬性進行賦值 isset na...

php 物件導向之 魔術方法

php 魔術方法 php 模式方法 描述 需要在類中定義魔術方法 construct destruct tostring 當物件被當作string使用時,這個方法會被自動呼叫。如 public function tostring echo myobj invoke 當物件被當成方法是,這個方法會自動...

php物件導向中的魔術方法

在 php 中以兩個下劃線開頭的方法,construct destruct call callstatic get set isset unset sleep wakeup tostring set state,clone autoload 等,被稱為 魔術方法 magic methods 注意 這...