• 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
  • 相关阅读:
    点对点PSCV
    开机启动文件夹
    SpringBoot占用端口
    停止8080端口
    java JDK下载与安装教程
    JRebel热部署
    取消ctrl+alt+箭头 旋转
    空指针调试
    xdebug 断点调试,时间过长会出现超时如何解决
    vue 无法加载文件 CProgram Filesnodejsnpm.ps1,因为在此系统上禁止运行脚本
  • 原文地址:https://www.cnblogs.com/uduemc/p/4120064.html
Copyright © 2020-2023  润新知