目錄
__get()
首頁 後端開發 php教程 PHP中的魔術方法是什麼,並提供了'__call()和`__get()'的示例。

PHP中的魔術方法是什麼,並提供了'__call()和`__get()'的示例。

Sep 20, 2025 am 12:50 AM
php 魔術方法

當對像上調用不訪問或未定義的方法時觸發__call()方法,通過接受方法名稱和參數允許自定義處理,如調用sayhello()等未定義方法時所示。 2。訪問無法訪問或不存在的屬性時調用__get()方法,啟用動態屬性檢索,例如從人類類中的內部$數據數組訪問名稱。 3。這兩種魔術方法都通過讓對象智能響應不確定的操作來增強靈活性,但應謹慎使用以保持代碼的清晰度和討論。

PHP中的魔術方法是什麼,並提供了__call()和`__get()的示例。

PHP中的魔術方法是特殊的內置方法,以兩個下劃線( __ )開頭,並根據特定事件或操作自動觸發。它們允許開發人員為常見的PHP操作定義自定義行為,例如調用未定義的方法,訪問屬性,對象實例化等。

PHP中的魔術方法是什麼,並提供了__call()和`__get()的示例。

兩種常用的魔術方法是__call()__get()


__call()

當在對像上調用無法訪問或未定義的方法(不存在的公共方法或從外部訪問的私有/受保護的方法)時,將觸發此方法。

PHP中的魔術方法是什麼,並提供了__call()和`__get()的示例。

句法:

 public函數__call($ MethodName,$ gramonments)
  • $methodName :調用方法的名稱。
  • $arguments :一系列參數傳遞給該方法。

例子:

PHP中的魔術方法是什麼,並提供了__call()和`__get()的示例。
類用戶{
    私人功能問候($ name){
        迴聲“你好,$ name!”;
    }

    public函數__call($ method,$ args){
        echo“方法&#39;$方法&#39;不存在或無法訪問。<br>”;
        迴聲“您試圖通過:”。爆破(&#39;,&#39;,$ args);
    }
}

$ user = new user();
$ user-> etch(&#39;alice&#39;); //這不會觸發__call(),因為方法存在但是私有的
$ user-> sayhello(&#39;bob&#39;); //觸發__call()

輸出:

方法“ sayhello”不存在或無法訪問。
你試圖通過:鮑勃

注意:由於greet()是私有的,因此直接從班級外部稱呼它會導致致命錯誤,而不是__call() 。但是,如果該方法簡單地不確定, __call()將優雅處理。


__get()

嘗試訪問無法訪問或不確定的屬性(即,私有/受保護的屬性或不存在的屬性)時,將調用此魔術方法。

句法:

公共功能__get($ propertyName)
  • $propertyName :訪問屬性的名稱。

例子:

班級{
    私有$ data = [
        &#39;name&#39;=>&#39;約翰&#39;,
        “年齡” => 30
    ];

    公共功能__get($屬性){
        如果(array_key_exists($屬性,$ this-> data)){
            返回$ this-> data [$ property];
        } 別的 {
            Echo“屬性&#39;$屬性&#39;不存在。”;
            返回null;
        }
    }
}

$ person = new Person();
echo $ person-> name; //輸出:約翰
echo $ person->電子郵件; //輸出:屬性“電子郵件”不存在。

在這裡, __get()允許對內部$data數組的控制訪問,就好像它們是真實的屬性一樣。


這些魔術方法可用於實現靈活的API,動態屬性/方法處理或創建“懶惰”加載行為。但是應仔細使用它們,以避免使代碼難以調試或理解。

基本上,當有人嘗試使用不直接可用的東西時,它們讓您的對象聰明地響應。

以上是PHP中的魔術方法是什麼,並提供了'__call()和`__get()'的示例。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Stock Market GPT

Stock Market GPT

人工智慧支援投資研究,做出更明智的決策

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何檢查電子郵件地址在PHP中是否有效? 如何檢查電子郵件地址在PHP中是否有效? Sep 21, 2025 am 04:07 AM

usefilter_var()

谷歌地球2025超清版在線使用_谷歌衛星地圖實時高清入口鏈接 谷歌地球2025超清版在線使用_谷歌衛星地圖實時高清入口鏈接 Sep 16, 2025 pm 02:06 PM

谷歌地球2025超清版在線使用入口為https://www.earthol.com/,該平台提供高清衛星地圖,支持Google、百度、騰訊、高德等多圖源切換,具備全球地址搜索、經緯度定位、全屏瀏覽及分享功能。

小紅書蒲公英入口查找技巧_小紅書蒲公英官網訪問路徑 小紅書蒲公英入口查找技巧_小紅書蒲公英官網訪問路徑 Sep 16, 2025 pm 12:15 PM

小紅書蒲公英入口可通過手機App或電腦端訪問。 1、手機端:打開小紅書App,登錄已完成實名認證的賬號,點擊“我”進入個人中心,找到“創作中心”或“合作中心”,點擊“更多服務”後選擇“博主合作”或“蒲公英會員”即可進入;2、電腦端:訪問官網https://in.xiaohongshu.com/,點擊右上角“登錄”,使用已認證的創作者賬號授權登錄,系統自動識別身份後進入對應界面,新用戶需提交身份證明、營業執照等材料完成入駐。平台提供數據分析、博主篩選、合作管理、內容投放與加熱等功能,支持多種合作模式

谷歌地球最新版在線使用_超清3D地球儀免安裝進入 谷歌地球最新版在線使用_超清3D地球儀免安裝進入 Sep 16, 2025 pm 12:39 PM

谷歌地球最新版在線使用入口是https://earth.google.com/web/,支持全球高清衛星影像、3D地形地貌、街景全景及歷史影像回溯,無需下載即可在瀏覽器中流暢操作,並可通過賬戶同步收藏與自定義地標。

如何在PHP中創建文件的郵政編碼? 如何在PHP中創建文件的郵政編碼? Sep 18, 2025 am 12:42 AM

使用ZipArchive類可創建ZIP文件,先實例化並打開目標zip,用addFile添加文件,支持自定義內部路徑,遞歸函數可打包整個目錄,最後調用close保存,確保PHP有寫權限。

PHP中的魔術方法是什麼,並提供了'__call()和`__get()'的示例。 PHP中的魔術方法是什麼,並提供了'__call()和`__get()'的示例。 Sep 20, 2025 am 12:50 AM

__call()methodistred prightedwhenaninAccessibleOrundEfinedMethodiscalledonAnaBject,允許customhandlingByAcceptingTheMethodNameAndarguments,AsshoheNpallingNengallingUndEfineDmethodSlikesayHello()

如何在PHP中獲取文件擴展名? 如何在PHP中獲取文件擴展名? Sep 20, 2025 am 05:11 AM

usepathinfo($ fileName,pathinfo_extension)togetThefileextension; itreliablyhandlesmandlesmultipledotsAndEdgecases,返回theextension(例如,“ pdf”)oranemptystringifnoneexists。

炫書網閱讀鏈接_炫書網電子書在線訪問地址 炫書網閱讀鏈接_炫書網電子書在線訪問地址 Sep 16, 2025 pm 02:27 PM

炫書網閱讀鏈接為https://www.xswang.com,該平台提供分類清晰的小說資源,涵蓋玄幻、都市等主流題材,支持個性化閱讀設置與進度同步,並設有評論區和作者互動功能,提升用戶閱讀體驗。

See all articles