Heim  >  Artikel  >  Backend-Entwicklung  >  PHP魔术方法__ISSET、__UNSET使用实例

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

WBOY
WBOYOriginal
2016-06-06 11:21:07995Durchsuche

__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>
    
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn