91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中有哪些魔幻方法

發布時間:2021-06-30 14:14:07 來源:億速云 閱讀:146 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關php中有哪些魔幻方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

魔幻方法有:“__construct()”、“__destruct()”、“__set()”、“__get()”、“__isset()”、“__unset()”、“__sleep()”、“___wakeup()”、“__call()”等等。

php魔幻(術)方法

在面向對象編程中,PHP 提供了一系列的魔術方法,這些魔術方法為編程提供了很多便利,在 PHP 中的作用是非常重要的。PHP 中的魔術方法通常以__(兩個下劃線)開始,并且不需要顯式的調用而是在某種特定條件下自動調用的。

魔術方法作用
__construct()實例化類時自動調用
__destruct()類對象使用結束時自動調用
__set()在給未定義的屬性賦值時自動調用
__get()調用未定義的屬性時自動調用
__isset()使用 isset() 或 empty() 函數時自動調用
__unset()使用 unset() 時自動調用
__sleep()使用 serialize 序列化時自動調用
__wakeup()使用 unserialize 反序列化時自動調用
__call()調用一個不存在的方法時自動調用
__callStatic()調用一個不存在的靜態方法時自動調用
__toString()把對象轉換成字符串時自動調用
__invoke()當嘗試把對象當方法調用時自動調用
__set_state()當使用 var_export() 函數時自動調用,接受一個數組參數
__clone()當使用 clone 復制一個對象時自動調用
__debugInfo()使用 var_dump() 打印對象信息時自動調用

下面簡單介紹幾個常用的魔術方法:

1、__set() 方法

在為當前環境下未定義或不可見的類屬性賦值時,會自動調用 __set() 方法。定義該方法的語法格式如下:

public function __set($key, $value){
    ... ... ;
}

其中,參數 $key 是要操作的變量名稱,$value 為變量 $key 的值。

2、__get() 方法

在調用或獲取當前環境下未定義或不可見的類屬性時,會自動調用 __get() 方法,定義該方法的語法格式如下:

public function __get($name){
    ... ... ;
}

參數 $name 為要操作的變量名稱。

3、__isset() 方法

當在類外部對類中不可訪問或不存在的屬性使用 isset() 或 empty() 函數時,會自動調用 __isset() 方法,該方法的語法格式如下:

public function __isset($name){
    ... ... ;
}

參數 $name 為要訪問的屬性名稱。

isset() 函數可以檢查一個變量是否存在并且不為 NULL,傳入一個變量作為參數,如果傳入的變量存在則傳回 true,否則傳回 false。

empty() 函數可以檢查一個變量是否為空,同樣需要傳入一個變量作為參數,如果變量并不存在,或者變量的值等于 FALSE,那么這個變量會被認為不存在。

類中的公有成員可以在類外訪問,而私有成員則無法在類外訪問。也就是說,我們可以使用 isset() 或 empty() 函數來檢查類中的公有屬性是否存在,而對類中的私有屬性這兩個函數就無效了。

如果想要使用 isset() 或 empty() 函數對類中的私有屬性進行檢測的話,我們只需要在類中添加一個 __isset() 方法就可以了,當在類外部使用 isset() 或 empty() 函數時,會自動調用類里面的 __isset() 方法。

4、__unset() 方法

當在類外部對類中不可訪問或不存在的屬性使用 unset() 函數時,__unset() 方法會被自動調用,該方法的語法格式如下:

public function __unset($name){
    ... ... ;
}

參數 $name 為要訪問的屬性名稱。

我們先來看一下 unset() 函數,unset() 函數的作用是刪除指定的變量,需要傳入一個或多個變量作為參數,另外,該函數沒有返回值。

同樣,我們也可以使用 unset() 函數在類外部去刪除類中的成員屬性。與上面介紹的 __isset() 方法相似,如果要刪除類中的公有屬性的話直接使用 unset() 函數即可;如果要刪除類中的私有屬性的話,則需要在類中添加一個 __unset() 方法。

5、__call() 方法

當調用類中一個不可訪問或不存在的方法時,__call() 方法會被調用。該方法的語法格式如下:

public function __call($name, $arguments){
    ... ... ;
}

其中,$name 為要調用的方法名稱,$arguments 為傳遞給 $name 的參數所組成的數組。

當調用的方法不存在時會自動調用 __call() 方法,程序會繼續執行下去,從而可以避免當調用方法不存在時產生錯誤所導致的程序終止。

6、__clone() 方法

可以使用 clone 關鍵字復制對象,當復制完成時,如果定義了 __clone() 方法,則新創建的對象(復制生成的對象)中的 __clone() 方法會被自動調用,通過該方法我們可以做一些必要的操作。__clone() 方法的語法格式如下:

public function __clone(){
    ... ... ;
}

看完上述內容,你們對php中有哪些魔幻方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

永吉县| 九龙坡区| 平阳县| 晴隆县| 呼图壁县| 乌苏市| 普格县| 甘洛县| 凤阳县| 高邑县| 岳阳县| 锡林浩特市| 宜川县| 宿松县| 松阳县| 保定市| 塘沽区| 巍山| 时尚| 枞阳县| 龙江县| 从江县| 河间市| 通河县| 吴旗县| 黄平县| 张掖市| 洛川县| 临猗县| 石河子市| 邯郸县| 娄烦县| 安福县| 海安县| 大兴区| 天水市| 宁强县| 通许县| 隆化县| 博罗县| 伊宁县|