PHP魔术方法__ISSET、__UNSET使用实例

WBOY
發布: 2016-06-06 11:21:07
原創
1027 人瀏覽過

__isset()    – 在对类中属性或者非类中属性使用isset()方法的时候如果没有或者非公有属性,则自动执行__isset()的方法

__unset()  - 在对类中属性或者非类中属性使用unset()方法的时候如果没有或者非公有属性,则自动执行__unset()的方法

代码如下:


    /**
     * 针对类中的魔术方法 __isset() 和 __unset() 的例子
     */

class Example {
    public $public;
    protected $protected;
    private $private;
   
    public function __construct(){
        $this->public = 'pub';
        $this->protected = 'pro';
        $this->private = 'pri';
    }
   
    public function __isset($var){
        echo '这里通过__isset()方法查看属性名为 '.$var."\n";
    }
   
    public function __unset($var){
        echo '这里通过__unset()方法要销毁属性名为 '.$var."\n";
    }
}

$exa = new Example;

echo '

';<br>
var_dump(isset($exa->public));<br>
echo "\n";<br>
var_dump(isset($exa->protected));<br>
echo "\n";<br>
var_dump(isset($exa->private));<br>
echo "\n";<br>
var_dump(isset($exa->noVar));<br>
echo "\n";<br>
echo '<hr>';
<p><br>
unset($exa->public);<br>
var_dump($exa);</p>
<p>echo "\n";<br>
unset($exa->protected);<br>
echo "\n";<br>
unset($exa->private);<br>
echo "\n";<br>
unset($exa->noVar);<br>
echo "\n";<br>
</p>
<p>结果如下:</p>
<p>bool(true)</p>
<p>这里通过__isset()方法查看属性名为 protected</p>
<p>bool(false)</p>
<p>这里通过__isset()方法查看属性名为 private</p>
<p>bool(false)</p>
<p>这里通过__isset()方法查看属性名为 noVar</p>
<p>bool(false)<br>
</p><p class="codetitle"> 代码如下:</p><p class="codebody" id="code75579"><br>
object(Example)#1 (2) {<br>
  ["protected:protected"]=><br>
  string(3) "pro"<br>
  ["private:private"]=><br>
  string(3) "pri"<br>
}<br>
</p>
<p>这里通过__unset()方法要销毁属性名为 protected</p>
<p>这里通过__unset()方法要销毁属性名为 private</p>
<p>这里通过__unset()方法要销毁属性名为 noVar</p>
    
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!