日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

php中的类魔术方法有哪些

發布時間:2023/12/29 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 php中的类魔术方法有哪些 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

php中的類魔術方法有:1、__sleep,返回一個包含對象中所有應被序列化的變量名稱的數組;2、__tostring,返回一個類被當作字符串時要輸出的內容;3、__construct,構造方法;4、__destruct,析構方法。

在PHP中將所有以雙下劃線(__)開頭的類方法保留為魔術方法。

(推薦教程:php圖文教程)

下面我們來看看都有哪些魔術方法:

1、__sleep:返回一個包含對象中所有應被序列化的變量名稱的數組。

serialize函數在序列化類時首先會檢查類中是否存在__sleep方法。如果存在,會先調用此方法然后再執行序列化操作,并且只對__sleep返回的數組中的屬性進行序列化。如果__sleep不返回任何內容,則null會被序列化,并產生E_NOTICE級別的錯誤。

__sleep不能返回父類的私有成員,否則會產生E_NOTICE級別的錯誤。對于一些很大但不需要保存全部數據的對象此方法很有用。

2、__wakeup:與__sleep相反,是在unserialize函數反序列化時首先會檢查類中是否存在__wakeup方法,如果存在會先調用次方法然后再執行反序列化操作。用于在反序列化之前準備一些對象需要的資源,或其他初始化操作。

3、__tostring:返回一個類被當做字符串時要輸出的內容,此方法必須返回字符串并且不能在此方法中拋出異常,否則會產生致命錯誤。

在PHP5.2之前此方法只有在直接使用echo和print時才生效,之后則可以在任何字符串環境生效,如果將一個未定義__toString方法的對象轉換為字符串,會產生致命錯誤。

(視頻教程推薦:php視頻教程)

4、__invoke:PHP5.3起,當嘗試以函數的方式調用對象時,會調用此方法。

5、__set_state:PHP5.1起,當調用var_export函數導出類時,會調用此靜態方法。此方法只有一個參數,是一個包含按屬性為鍵,屬性值為值的數組。此方法可以用來控制哪些成員可以被導出。

6、__debugInfo:PHP5.6起,當調用var_dump函數打印對象的屬性時會調用此方法,此方法可以用來控制哪些屬性可以被打印,如果沒有定義此方法,則對象中所有的public、protected、private的屬性都會被打印。返回一個包含可以被打印的屬性的數組。

7、__construct:構造函數。

8、__destruct:析構函數。

9、__set、__get、__isset、__unset:重載屬性。

10、__call、__callstatic:重載方法。

11、__clone:對象復制。

總結

以上是生活随笔為你收集整理的php中的类魔术方法有哪些的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。