<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                **__isset()**   在對類中屬性或者非類中屬性使用isset()方法時如果**沒有**或者**非公有屬性**,則自動執行__isset()的方法(簡單理解除了屬性public 以外都調用) **__unset()** 在對類中屬性或者非類中屬性使用unset()方法的時候如果**沒有**或者**非公有屬性**,則自動執行__unset()的方法 ``` <?php /* __isset格式:bool __isset(string name)傳入對象中的成員屬性名作為參數,返回測定的結果 作用 :在類的外部使用“isset()”方法測定對象中的成員時, 就會自動調用對象中的“__isset()”方法, 間接地幫助我們完成對對象中私有成員屬性的測定 __unset格式:void __unset(string name) //傳入對象中的成員屬性作為參數 作用 :可以將私有成員屬性刪除如果沒有在類中加入此方法, 就不能刪除對象中任何的私有成員屬性。 */ class Employee { private $name; private $sex; private $salary; function __construct($name="",$sex="男",$salary=3000) { $this->name=$name; $this->sex=$sex; $this->salary=$salary; } function __isset($propertyName) { if($propertyName=="salary")//$propertyName是屬性名的意思 return false; return isset($this->$propertyName); // $propertyName 是私有的外部不能直接判斷 必須先通過__isset 進而就可以判斷 //當在外面使用__isset()測定私有成員屬性時,__unset方法被自動調用 //并在內部把私有的成員屬性刪除 } function __unset($propertyName) { if ($propertyName=="salary" || $propertyName=="name") return; unset($this->$propertyName); } public function getInfo() { echo "我的名字:".$this->name.",性別:".$this->sex.",工資:".$this->salary."<br>"; } } $e=new Employee("奧巴馬","男",20000); var_dump(isset($e->name)); echo "<br>";//輸出bool為false,不允許測定name屬性 var_dump(isset($e->sex)); echo "<br>"; var_dump(isset($e->salary)); echo "<br>"; var_dump(isset($e->id));//輸出bool(false),測定對象中不存在id的屬性 unset($e->sex);//刪除對象中的私有屬性sex 刪除成功 unset($e->salary);//刪除對象中私有屬性salary,刪除不成功 $e->getInfo(); ?> ``` ## **注意:** 直接在外部 isset(私有屬性) 由于訪問不了私有屬性返回 false(即使該私有屬性有值) 應用__isset( ),在外部執行isset(私有屬性),就會自動調用對象中的“__isset()”方法, 然后 我們既可以在 __isset()”方法內 isset(私有屬性) 得到準確的值, 簡而言之:**間接**地幫助我們完成對對象中**私有成員屬性**的測定 ***** 通過 __isset()的方法 才能正確檢查 isset() 否則isset永遠是false ***** __isset 和 __unset 是 PHP 中的兩個魔術方法(Magic Methods),用于在訪問或修改類的屬性時提供特定的行為。它們分別用于檢測屬性是否存在和刪除屬性。 __isset 方法: 當對一個對象的屬性使用 isset() 函數進行檢測時,如果該屬性不存在或不可訪問,PHP 將會調用類中定義的 __isset 方法。 __isset 方法接收一個參數,即要檢測的屬性名,然后返回一個布爾值,指示該屬性是否存在或是否具有非空值。 以下是 __isset 方法的示例: ``` class MyClass { private $data = array(); public function __isset($name) { return isset($this->data[$name]); } } $obj = new MyClass(); isset($obj->property); // 調用 __isset 方法 ``` 在上述示例中,當使用 isset($obj->property) 檢測 $obj 對象的 property 屬性時,PHP 將調用 MyClass 類中定義的 __isset 方法。__isset 方法檢查屬性名是否存在于 $data 數組中,并返回相應的布爾值。 __unset 方法: 當對一個對象的屬性使用 unset() 函數進行刪除時,如果該屬性不存在或不可訪問,PHP 將會調用類中定義的 __unset 方法。 __unset 方法接收一個參數,即要刪除的屬性名,然后執行相應的操作。 以下是 __unset 方法的示例: ``` class MyClass { private $data = array(); public function __unset($name) { unset($this->data[$name]); } } $obj = new MyClass(); unset($obj->property); // 調用 __unset 方法 ``` 在上述示例中,當使用 unset($obj->property) 刪除 $obj 對象的 property 屬性時,PHP 將調用 MyClass 類中定義的 __unset 方法。__unset 方法從 $data 數組中刪除相應的屬性。 通過定義 __isset 和 __unset 方法,我們可以自定義類在屬性訪問和刪除過程中的行為。這可以用于提供屬性的動態訪問控制、屬性值的惰性加載、日志記錄等功能。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看