PHP中什麼是魔術方法?常用魔術方法有哪些?
上篇文章為大家介紹了《PHP中什麼是繼承和派生?我們如何運用繼承? 》,本文繼續介紹PHP什麼是魔術方法?常用魔術方法有哪些?有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
1、什麼是魔術方法
系統在特定的時機自動呼叫的方法
2、常用魔術方法:
_get
#觸發時機:物件在外部存取私有成員或受保護屬性時呼叫
這個方法有一個參數:參數就是屬性名稱
我們以程式碼為例:
首先我們先建立一個新的文件,我們寫一個class類,在類別裡面定義屬性,然後我們創建一個對象,當我們去輸出(echo)剛剛定義的類,我們會發現出現報錯,因為對像只能訪問公共的屬性,我們不能訪問受保護的和私有的屬性,程式碼如下:
<?php class Person { public $name = '林徽因'; protected $pome = '答案很长,我准备用一生的时间来回答,你准备要听了吗?'; private $time = '民国' ; } $niu = new Person(); echo $niu->pome; ?>
程式碼顯示結果:
#我們會發現我們上述程式碼運行出現錯誤,因此,在外部不能存取受保護的和私有的屬性,如果我們想要在外部試圖透過物件來存取受保護的或私有的成員屬性時,就會自動的觸發get方法。
public function __get($name){ echo $name; }
緊接著印出$name,
程式碼顯示結果:
因此我們透過上述程式碼可以使用if語句進行判斷:
if ($name == 'pome'){ return $this->pome;
程式碼顯示結果:
以上就是我們所說的get用法
--set
觸發時機:物件在外部設定私有或受保護成員屬性值的時候呼叫
#該方法有兩個參數:
參數1:成員屬性名稱!
參數2:要設定的值
我們以程式碼為例:
所有的魔術方法都是用public,跟上述一樣我們在類別裡面定義屬性,然後我們建立一個對象,而set屬性有兩個參數,一個是屬性名,一個是屬性值,在類別裡面我們都印出來;
public function __set($name,$value) { var_dump($name,$value); } } $niu = new Person(); //echo $niu->pome; $niu->pome = '答案很长,我准备用一生的时间来回答,你准备要听了吗?';
程式碼顯示結果:
補充:(下次具體講解)
在外部可以透過unset銷毀物件中的public屬性
_unset
觸發時機:物件在外部銷毀私有或受保護成員屬性的時候呼叫
該方法有一一個參數:參數就是私有的成員屬性名稱
_isset
#觸發時機:物件在外部判斷私有或受保護成員屬性的時候調用,
此方法有一個參數:參數就是私有的成員屬性名稱
construct :建構方法
##觸發時機:在建立物件的時候自動呼叫
destruct:析構方法
toString (了解)#觸發時機:echo-一個物件的時候觸發#該函數需要return -一個字串__debugInfo (了解)
觸發時機:var_dump--個物件的時候觸發該函數需要return-一個陣列推薦學習:以上是PHP中什麼是魔術方法?常用魔術方法有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

python元程式設計基礎Python元程式設計是動態地操作Python程式碼的能力,這使得Python成為一門非常強大的語言。元編程可以透過以下幾種方式實現:類別裝飾器:類別裝飾器是一種修改類別定義的裝飾器。它可以用來新增或修改類別的屬性和方法,也可以用來控制類別的實例化過程。 defadd_method_to_class(cls):defnew_method(self):print("Thisisanewmethod")setattr(cls,"new_method",new_method)returncls@a

PHP魔術方法的執行順序遵循以下規則:優先順序高的魔術方法優先執行。如果子類別和父類別都定義了同名的魔術方法,則優先執行子類別的魔術方法。如果一個類別既定義了一個常規方法,又定義了同名的魔術方法,則優先執行常規方法。

什麼是魔術方法?如何在 Laravel 的應用?以下這篇文章跟大家介紹PHP 魔術方法在 Laravel應用的方法,希望對大家有幫助!

PHP開發中,反射和魔術方法是兩種常用的技巧。當我們需要自動產生程式碼或動態呼叫某些函數時,反射和魔術方法可以使我們的程式碼更加靈活和有效率。在本文中,我們將探討如何使用反射和魔術方法來實現程式碼自動產生和動態呼叫。反射是PHP提供的一種強大的工具,它可以幫助我們在程式運行時取得類別、方法和屬性等資訊。透過反射,我們可以動態地獲取類別或物件的方法、屬性和註釋等信息,使

PHP是一種基於C語言開發的伺服器端腳本語言,它在Web開發中廣泛應用。而函數是程式中最基本、最常用的組成部分之一,PHP也提供了許多與函數相關的魔術方法,可以幫助開發者更好地利用函數的優勢。在本文中,我們將介紹PHP函數的魔術方法及其用法。 __construct()__construct()是PHP中最常用的魔術方法之一,它在建立物件時會自動調用,用於初始化

魔術方法:在PHP中理解__construct,__destruct等核心方法在PHP語言中,有一些特殊的方法被稱為“魔術方法”,其中包括__construct,__destruct等。這些方法在PHP的物件導向程式設計中扮演著重要的角色。本文將講解這些方法的作用和實際應用。 __construct方法__construct方法是個很重要的方法,它是在PHP

PHP作為一種廣泛應用的開發語言,具有豐富的特性,它的魔術方法就是其中之一,本文將為大家介紹PHP中的魔術方法。一、什麼是魔術方法?在PHP中,魔術方法是指一類可以自動呼叫的方法。這些方法使用特殊的名稱,以雙底線(__)開頭和結尾,並在調用它們時具有特殊的行為。二、PHP常用的魔術方法__construct()在創造一個新的物件時,__construc
