• 魔术方法:__set、__get


    __set: 在设置对象里边不能直接设置(或没有)的属性值的时候,自动去被调用

    class Track
    {
    private $track_name;
    public function __set($name, $value)
        {
            $this->$name = $value;
            //在设置对象里边的私有、受保护或者是不存在的属性值的时候,自动去被调用
        }
    }
    
    $magic = new Track();
    $magic->track_name = 'Magic';
    print_r($magic);
    
    //输出
    Track Object
    (
        [track_name:Track:private] => Magic
    )

     

    __get: 在获取不可见的属性(private/protected)的时候,自动会被去调用

    class Track
    {
        private $track_name;
    
        public function __set($name, $value)
        {
            if (property_exists($this, $name)) {
                $this->$name = $value;
            }
            //在设置对象里边的私有、受保护或者是不存在的属性值的时候,自动去被调用
        }
    
        public function __get($name)
        {
            return $this->$name;
            //在获取不可见的属性的时候,自动会去被调用
        }
    
    }
    
    $magic = new Track();
    $magic->track_name = 'Magic';
    echo $magic->track_name;  //获取不可见的属性
    
    //输出
    Magic

     

  • 相关阅读:
    python 二分法查找
    python 线性查找
    Ubuntu14.04 获取文件或者文件夹大小
    Python异常处理
    python 正则
    Python网络编程(Sockets)
    Python多线程编程
    Python XML解析和处理
    python 迭代器
    python 装饰器
  • 原文地址:https://www.cnblogs.com/qq254980080/p/9894956.html
Copyright © 2020-2023  润新知