• 常见的几种魔术变量


    如果在类中变量,方法被设置权限,外部想要设置,访问可以使用参考以下:

    __set和__get

    class Tets{
        private $a = '';
        public function __set($var,$val){
            $this->$val = $val;
        }
        public function __get($var){
            return $this->$var;
        }
    }
    
    $test = new Test();
    $test->a = 'abc';     //如果没有设置__set会报错,因为外部不能调用private的变量
    var_dump($this->a);

    __isset

    class Test{
        private $abc = 'abc';
    
        public function __isset($var){
            return isset($this->$var)?true:false;
        }
    }
    $test= new Test();
    var_dump(isset($test->abc));

     __unset

    class Test{
        private $abc = 'abc';
    
        public function __unset($var){
            unset($this->$var);
        }
    }
    $test = new Test();
    unset($test->abc);

    __call

    class Test{
        public function __call($func,$arguments){
            echo($func."<br/>");
            print_r($arguments);
        }
    }
    
    $test = new Test();
    $test->go(1,'ok'); //当实例化对象没有找到方法,就会自动调用__call();

    __callStatic

    class Test{
        public static function __callStatic($func,$arguments){
                    echo($func."<br/>");
            print_r($arguments);
        }
    }
    Test::go(1,'ok');  //没有找到类方法就自动调用__callStatic()

    __invoke

    class Test{
        public function __invoke($arg){
            var_dump($arg);
        }
    }
    
    $test = new Test();
    $test('go....');  //直接将实例化的对象当做函数来执行就用__invoke()

    __toString

    class Test{
        public function __toString(){
            return "hello;;;";
        }
    }
    
    $test = new Test();
    echo $test;   //直接打印实例化对象,就可以使用__toString

    其他常见魔术变量

    __clone() 当对象被克隆时,被调用

    __construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用。

    __destruct() 当删除一个对象或对象操作终止的时候,调用该方法。

    系统常量

    __FILE__ 当前文件名
    __LINE__ 当前行数
    __FUNCTION__ 当前函数名
    __CLASS__ 当前类名
    __METHOD__ 当前对象的方法名

  • 相关阅读:
    Python GUI编程(Tkinter)19、Frame控件
    Python GUI编程(Tkinter)18、Combobox下拉控件
    D
    C
    B
    A
    wordpress调用服务器本地的头像
    杂七杂八的问题处理03--jenkins发邮件提示Error sending to the following VALID addresses
    杂七杂八的问题处理02--allure报告显示loading问题
    vue一次下载多个文件
  • 原文地址:https://www.cnblogs.com/zgx123/p/7822907.html
Copyright © 2020-2023  润新知