PHP物件導向 –魔術方法

來源:互聯網
上載者:User

標籤:tostring   使用   als   刪除   開頭   auto   命名方式   獨立   對象   

__construct() 建構函式

__destruct() 解構函式

__sleep()    serialize序列化時調用

__wakeup()  unserialize還原序列化時調用

__clone()       檢測複製對象

屬性重載的魔術方法:

set,get,sset,unset

__set()          當為不可訪問的屬性賦值時,會被自動調用 會得到兩個參數,當前操作的屬性名稱和屬性值!

                    典型的,__set作用,用於嚴格控制對象結構,和批處理可以被修改的屬性!

__get()         

當訪問不可訪問的屬性時,會被自動調用

需要的參數是:一個,為當前操作的屬性名稱

__unset()

在刪除一個不可訪問的屬性時,可以自動被調用!

需要一個參數 當前操作的屬性名稱。

此時就可以利用商務邏輯完成 屬性的刪除處理!

__isset()

在判斷一個不可訪問的屬性是否存在時,被自動調用

需要一個參數,屬性名稱

注意,此函數需要返回true,或者false,表示屬性是否存在:

方法重載的魔術方法:

__call()

當訪問一個不可訪問的對象方法時,會觸發當前的魔術方法!

需要的參數:

2個參數,第一是當前的方法名,第二是調用時使用的實參列表!

典型的作用,

第一, 給出友好的提示

第二, 執行預設操作!

static __callStatic()

與 __call類似,當靜態調用一個不可訪問的方法時,會自動執行!

 

魔術方法,magic method

 

在特定的情況下,會被自動調用的方法,通常負責完成某塊獨立的功能的方法稱之為魔術方法!

特點:

1,需要使用者指令碼定義,不定義不執行!

2,命名方式都是以__開頭!

 

 

 

總結:

 

__construct

 

__destruct

 

__sleep

 

__wakeup

 

__set

 

__get

 

__isset

 

__unset

 

__clone

 

__call

 

__callStatic

 

 

 

__autoload()//魔術函數

 

 

 

 

__invoke()

 

將一個對象,當作函數調用時,會觸發該對象的__invoke()方法,由此方法,就可以調用,沒有該方法就不能調用!

 

回想匿名函數

為什麼,匿名函數對象(Closure類對象)可以,但是普通類對象不行?

PHP內建Closure類中有__invoke()方法:__invoke是 php實現匿名函數  不可或缺的部分!

 

__toString()

 

轉換到字串的意思!

 

當將對象當作字串使用時,會自動調用該對象的魔術方法!

PHP物件導向 –魔術方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.