您好,登錄后才能下訂單哦!
小編給大家分享一下PHP中__unset()方法的作用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
__unset(),當對不可訪問屬性調用unset()時被調用。
看這個方法之前呢,我們也先來看一下 unset() 函數,unset()這個函數的作用是刪除指定的變量且傳回true,參數為要刪除的變量。
那么如果在一個對象外部去刪除對象內部的成員屬性用unset()函數可以嗎?
這里自然也是分兩種情況:
1、 如果一個對象里面的成員屬性是公有的,就可以使用這個函數在對象外面刪除對象的公有屬性。
2、 如果對象的成員屬性是私有的,我使用這個函數就沒有權限去刪除。
雖然有以上兩種情況,但我想說的是同樣如果你在一個對象里面加上__unset()這個方法,就可以在對象的外部去刪除對象的私有成員屬性了。在對象里面加上了__unset()這個方法之后,在對象外部使用“unset()”函數刪除對象內部的私有成員屬性時,對象會自動調用__unset()函數來幫我們刪除對象內部的私有成員屬性。
請看如下代碼:
<?php class Person { public $sex; private $name; private $age; public function __construct($name="", $age=25, $sex='男') { $this->name = $name; $this->age = $age; $this->sex = $sex; } /** * @param $content * * @return bool */ public function __unset($content) { echo "當在類外部使用unset()函數來刪除私有成員時自動調用的<br>"; echo isset($this->$content); } } $person = new Person("小明", 25); // 初始賦值 unset($person->sex); unset($person->name); unset($person->age);
運行結果:
當在類外部使用unset()函數來刪除私有成員時自動調用的 1當在類外部使用unset()函數來刪除私有成員時自動調用的 1
以上是PHP中__unset()方法的作用的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。