首頁  >  文章  >  後端開發  >  PHP中__unset()方法詳解

PHP中__unset()方法詳解

藏色散人
藏色散人原創
2019-07-23 14:52:176997瀏覽

 __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=&#39;男&#39;)
    {
        $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()方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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