看這個方法之前呢,我們也先來看一下 unset() 函數,unset()這個函數的作用是刪除指定的變量且傳回true,參數為要刪除的變量。
那么如果在一個對象外部去刪除對象內部的成員屬性用unset()函數可以嗎?
這里自然也是分兩種情況:
1、 如果一個對象里面的成員屬性是公有的,就可以使用這個函數在對象外面刪除對象的公有屬性。
2、 如果對象的成員屬性是私有的,我使用這個函數就沒有權限去刪除。
雖然有以上兩種情況,但我想說的是同樣如果你在一個對象里面加上__unset()這個方法,就可以在對象的外部去刪除對象的私有成員屬性了。在對象里面加上了__unset()這個方法之后,在對象外部使用“unset()”函數刪除對象內部的私有成員屬性時,對象會自動調用__unset()函數來幫我們刪除對象內部的私有成員屬性。
請看如下代碼:
<?phphtml' target='_blank'>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()方法詳解的詳細內容,更多請關注 其它相關文章!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答