亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP 5.3新增魔術方法__invoke概述

2020-03-22 20:23:41
字體:
來源:轉載
供稿:網友
PHP自從5.3版以來就新增了一個叫做__invoke的魔術方法,使用該方法就可以在創建實例后,直接調用對象。如下示例所示:html' target='_blank'>class testClasspublic function __invokeprint "hello world";$n = new testClass;$n();執行結果為:hello world。php官方示例如下:
class CallableClasspublic function __invoke($x)var_dump($x);$obj = new CallableClass;$obj(5);var_dump(is_callable($obj));附:PHP其他魔術方法詳解:php中的類就可以使用魔術方法了。其規定以兩個下劃線(__)開頭的方法都保留為魔術方法,所以建議大家函數名最好不用__開頭,除非是為了重載已有的魔術方法。The function names __construct, __destruct, __call, __callStatic, __get, __set, __isset, __unset, __sleep, __wakeup, __toString, __invoke, __set_state and__clone are magical in PHP classes. You cannot have functions with these names in any of your classes unless you want the magic functionality associated with them.如下這兩個方法是為在類和他們的父類中沒有聲明的屬性而設計的。
__get($property)當調用一個未定義的屬性時,此方法會被觸發,傳遞的參數是被訪問的屬性名。
__set($property,$value)給一個未定義的屬性賦值時,此方法會被觸發,傳遞的參數是被設置的屬性名和值。
這里的沒有聲明包括當使用對象調用時,訪問控制為proteced,private的屬性(即沒有權限訪問的屬性)。
與__get方法和__set方法相同,這里的沒有聲明包括當使用對象調用時,訪問控制為proteced,private的屬性(即沒有權限訪問的屬性)。這里的未定義的方法包括沒有權限訪問的方法;如果方法不存在就去父類中找這個方法,如果父類中也不存在就去調用本類的__call()方法,如果本類中不存在__call()方法就去找父類中的__call()方法。__autoload函數,它會在試圖使用尚未被定義的類時自動調用。通過調用此函數,腳本引擎在php出錯失敗前有了最后一個機會加載所需的類。注意:在__autoload函數中拋出的異常不能被catch語句塊捕獲并導致致命錯誤,所以應該在函數本身做捕獲。__construct構造方法,當一個對象創建時調用此方法,相對于php4使用此方法的好處是:可以使構造方法有一個獨一無二的名稱,無論它所在的類的名稱是什么.這樣你在改變類的名稱時,就不需要改變構造方法的名稱。__destruct析構方法,php將在對象被銷毀前(即從內存中清除前)調用這個方法。默認情況下,php僅僅釋放對象屬性所占用的內存并銷毀對象相關的資源,析構函數允許你在使用一個對象之后執行任意代碼來清除內存。當php決定你的腳本不再與對象相關時,析構函數將被調用。在一個函數的命名空間內,這會發生在函數return的時候。對于全局變量,這發生于腳本結束的時候。如果你想明確地銷毀一個對象,你可以給指向該對象的變量分配任何其它值.通常將變量賦值為null或者調用unset。php5中的對象賦值是使用的引用賦值,如果想復制一個對象則需要使用clone方法,在調用此方法是對象會自動調用__clone魔術方法,如果在對象復制需要執行某些初始化操作,可以在__clone方法實現。__tostring方法在將一個對象轉化成字符串時自動調用,比如使用echo打印對象時。在php5.2.0之前,__tostring方法只有結合使用echo()或print()時才能生效。php5.2.0之后,則可以在任何字符串環境生效(例如通過printf(),使用%s修飾符),但不能用于非字符串環境(如使用%d修飾符)。從php5.2.0,如果將一個未定義__tostring方法的對象轉換為字符串,會報出一個e_recoverable_error錯誤。__wakeup反串行化的時候調用serialize()檢查類中是否有魔術名稱__sleep的函數。如果這樣,該函數將在任何序列化之前運行。它可以清除對象并應該返回一個包含有該對象中應被序列化的所有變量名的數組。使用__sleep的目的是關閉對象可能具有的任何數據庫連接,提交等待中的數據或進行類似的清除任務。此外,如果有非常大的對象而并不需要完全儲存下來時此函數也很有用。PHP相反地,unserialize()檢查具有魔術名稱__wakeup的函數的存在。如果存在,此函數可以重建對象可能具有的任何資源。使用__wakeup的目的是重建在序列化中可能丟失的任何數據庫連接以及處理其它重新初始化的任務。
當嘗試以調用函數的方式調用一個對象時,__invoke方法會被自動調用。它的工作方式類似于__call()魔術方法,__callstatic()是為了處理靜態方法調用。php確實加強了對__callstatic()方法的定義;它必須是公共的,并且必須被聲明為靜態的。同樣,__call()魔術方法必須被定義為公共的,所有其他魔術方法都必須如此。
PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人欧美一区二区三区黑人| 国产伦精品一区二区三区精品视频| 久久精品国产一区| 亲子乱一区二区三区电影| 午夜精品理论片| 97精品一区二区视频在线观看| 中文综合在线观看| 国产一区二区三区高清在线观看| 欧美在线观看视频| 91精品国产免费久久久久久| 日韩国产在线看| 亚洲最大中文字幕| 国产成人福利网站| 日韩电影免费在线观看| 欧美成人第一页| 国产精品自拍偷拍视频| 91精品免费看| 久久精品国产综合| 中文字幕精品久久| 亚洲国产精品va在线看黑人| 亚洲 日韩 国产第一| 亚洲人成电影网站色…| 日韩美女福利视频| 欧美激情视频一区二区三区不卡| 日韩精品亚洲元码| 欧美野外wwwxxx| 久久久久这里只有精品| 国产精品日韩在线一区| 亚洲一区二区三区香蕉| 欧美成人精品xxx| 亚洲激情第一页| 美日韩精品视频免费看| 久久久国产一区二区三区| 亚洲免费电影在线观看| 欧美激情在线观看视频| 日本一区二三区好的精华液| 91性高湖久久久久久久久_久久99| 久久久久久999| 精品国产乱码久久久久久婷婷| 国产成人精品免费视频| 欧美午夜精品在线| 欧美日韩中国免费专区在线看| 国产中文日韩欧美| 久久久影视精品| 亚洲国产精品人人爽夜夜爽| 91免费在线视频| 日韩久久午夜影院| 欧美精品电影免费在线观看| 热久久视久久精品18亚洲精品| 精品精品国产国产自在线| 免费av一区二区| 欧美黄色性视频| 欧美最猛性xxxxx亚洲精品| 久久精品国产v日韩v亚洲| 国产成人久久久精品一区| 久久久成人精品| 97在线视频精品| 狠狠久久亚洲欧美专区| 在线观看国产欧美| 日韩a**中文字幕| 中文字幕精品网| 国产精品嫩草视频| 91超碰caoporn97人人| 亚洲色图35p| 亚洲电影免费在线观看| 国产成+人+综合+亚洲欧美丁香花| www国产亚洲精品久久网站| 欧美日韩国产黄| 一本一本久久a久久精品综合小说| 亚洲美女自拍视频| 日韩视频免费大全中文字幕| 热99精品里视频精品| 国产成人精品午夜| 欧美激情亚洲激情| 国产精品h片在线播放| 亚洲欧美国产精品久久久久久久| 亚洲风情亚aⅴ在线发布| 中文字幕欧美日韩在线| 日韩精品日韩在线观看| 97超碰色婷婷| 国产精品视频免费观看www| 国产午夜精品久久久| 国产手机视频精品| 日韩精品免费观看| 国产精品爱啪在线线免费观看| 欧美极品xxxx| 亚洲高清在线观看| 最近2019年好看中文字幕视频| 欧美激情亚洲另类| 亚洲综合精品伊人久久| 亚洲国产成人久久| 日韩成人av在线| 欧美一级片免费在线| 欧美日韩国产va另类| 成人美女av在线直播| 成人免费xxxxx在线观看| 91天堂在线观看| 亚洲xxx自由成熟| 欧美在线影院在线视频| 国产一区二区三区在线播放免费观看| 最新91在线视频| 26uuu亚洲国产精品| 国产一区二区欧美日韩| 亚洲电影中文字幕| 91亚洲精品在线| 亚洲风情亚aⅴ在线发布| 亚洲日韩第一页| 国产97色在线|日韩| 亚洲欧美日韩一区在线| 国内精品久久久| 欧美制服第一页| 欧美性感美女h网站在线观看免费| 亚洲精品久久视频| 中文字幕精品一区久久久久| 久久精品免费电影| 亚洲人成在线观看网站高清| 亚洲成人网在线| 欧美综合第一页| 一本一道久久a久久精品逆3p| 欧美人与性动交| 7777精品久久久久久| 国产91精品久久久久久久| 亚洲视频一区二区三区| 亚洲午夜未满十八勿入免费观看全集| 中文字幕国产精品久久| 91久久国产综合久久91精品网站| 国产精品成人一区二区三区吃奶| 日韩电影大全免费观看2023年上| 欧美大片在线看免费观看| 91啪国产在线| 亚洲女人被黑人巨大进入| 欲色天天网综合久久| 久久久久国产精品免费网站| 亚洲最大成人免费视频| 色樱桃影院亚洲精品影院| 日韩av一卡二卡| 欧美电影免费观看电视剧大全| 欧美亚洲国产视频| 欧美国产日韩一区二区在线观看| 精品无码久久久久久国产| 国产小视频国产精品| 日韩av在线直播| 精品国产精品自拍| 亚洲精品中文字幕av| 欧美激情亚洲激情| 国产精品第一视频| 最新亚洲国产精品| 中文字幕亚洲欧美日韩在线不卡| 亚洲美女av电影| 久久久久久亚洲精品| 欧美中文字幕精品| 国产小视频91| 欧美性生交xxxxxdddd| 伊人av综合网| 欧美国产视频一区二区| 91wwwcom在线观看| 国产成一区二区| 成人在线一区二区| 国产精品女人网站| 国模精品视频一区二区三区| 日韩国产精品亚洲а∨天堂免| 国产成人亚洲综合91精品| 亚洲第一偷拍网| 性欧美暴力猛交69hd|