您的位置:首页 > 编程语言 > PHP开发

php 实现get,set方式读取属性值

2016-07-23 13:55 465 查看
      JavaBan中的通过get,set方式获取/设置属性值,同时在jstl可以通过对象名.属性名的方式读取属性值。如果想在php中实现前述功能如何处理呢。php需要通过__get和__set两个魔术方法实现java中的get,set方法

/**
* 通过魔术方法实现javabean的get方法
* @param $name    参数名
* @return mixed   自动调用对应的方法名
*/
public function __get($name){
$getter = 'get'.ucfirst($name);

if (method_exists($this, $getter)) {
return $this->$getter();
}elseif (method_exists($this, 'set'.$name)){
throw new Exception('read-only property:'.$name);
}else{
throw new Exception('unknown property:'.$name);
}
}

/**
* 通过魔术方法实现javabean的set方法
* @param $name   参数名
* @param $value  参数值
*/
public function __set($name, $value){
$setter = 'set'.ucfirst($name);

if (method_exists($this, $setter)) {
$this->$setter($value);
}elseif (method_exists($this, 'get'.$name)){
throw new Exception('write-only property:'.$name);
}else {
throw new Exception('unknown property:'.$name);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javabean __get __set 属性 php