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); } }
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- rem : web app适配的秘密武器
- jquery高级应用之Deferred对象
- 关于浮动与清除浮动,你应该知道的
- 数组reduce方法的高级技巧
- php7 读取php.ini[4]
- DOM2非标准但却支持很好的几个属性小结
- Ruby简洁学习笔记(二):类继承、属性、类变量
- 举例讲解C#中自动实现的属性
- Delphi控件ListView的属性及使用方法详解
- C#实现获取不同对象中名称相同属性的方法