首页 > 其他 > 详细

__get,__set

时间:2015-12-14 23:13:40      阅读:215      评论:0      收藏:0      [点我收藏+]

__get,__set 为php的magic方法,在类中定义为 public 类型。

class UserModel
{
    private  $id;
    public  $name;

    public function __get($property_name)
    {
      
        if(isset($this->$property_name))
        {
            return($this->$property_name);
        }else
        {
            return(NULL);
        }
    }

    public function __set($property_name, $value)
    {
        $this->$property_name = $value;
    }
}

定义:
$user=new UserModel();

 

1、直接赋值,读取private属性,将会调用__set,__get方法

echo $user->id; 

2、为对象设置匿名属性。

echo $user->r ; // 触发 __get,第二次读取将不会触发__get方法 
$user->r =‘rhythmk‘ ; // 触发 __set,第二次赋值将不会触发__set方法

注意:
  当对象的属性 如果 isset(对象->属性) == true, 将不会触发 __set,__get 方法。

 

__get,__set

原文:http://www.cnblogs.com/rhythmK/p/5046724.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!