zoukankan      html  css  js  c++  java
  • PHP 魔术方法 __isset __unset (三)

    慢慢长寻夜,明月高空挂

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

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

    <?php
        /**
         * 针对类中的魔术方法 __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."
    ";
        }
        
        public function __unset($var){
            echo '这里通过__unset()方法要销毁属性名为 '.$var."
    ";
        }
    }
    
    $exa = new Example;
    
    echo '<pre>';
    var_dump(isset($exa->public));
    echo "
    ";
    var_dump(isset($exa->protected));
    echo "
    ";
    var_dump(isset($exa->private));
    echo "
    ";
    var_dump(isset($exa->noVar));
    echo "
    ";
    echo '<hr/>';
    
    
    unset($exa->public);
    var_dump($exa);
    
    echo "
    ";
    unset($exa->protected);
    echo "
    ";
    unset($exa->private);
    echo "
    ";
    unset($exa->noVar);
    echo "
    ";
    

     结果如下:

    bool(true)
    
    这里通过__isset()方法查看属性名为 protected
    bool(false)
    
    这里通过__isset()方法查看属性名为 private
    bool(false)
    
    这里通过__isset()方法查看属性名为 noVar
    bool(false)
    ------------------------------------------------------------------------------
    object(Example)#1 (2) {
      ["protected:protected"]=>
      string(3) "pro"
      ["private:private"]=>
      string(3) "pri"
    }
    
    这里通过__unset()方法要销毁属性名为 protected
    
    这里通过__unset()方法要销毁属性名为 private
    
    这里通过__unset()方法要销毁属性名为 noVar
  • 相关阅读:
    路由器远程登陆的方式
    路由器上的DNS服务器构建
    路由器配置维护技巧---管道的应用
    【转】常见面试问题
    英文面试决胜关键
    12个有趣的c语言面试题
    16道嵌入式C语言面试题(经典)
    LCD 调试总结
    关于uboot的一些优化
    linux驱动开发的经典书籍
  • 原文地址:https://www.cnblogs.com/uduemc/p/4120064.html
Copyright © 2011-2022 走看看