php __set() __get() 方法访问属性
2015-10-03 15:26
639 查看
<?php header("Content-type:text/html;charset=utf-8"); class Obj{ 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); } } 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); } } } class person extends Obj{ private $name; private $age; private $address; /** * @return the $name */ public function getName() { return $this->name; } /** * @return the $age */ public function getAge() { return $this->age; } /** * @return the $address */ public function getAddress() { return $this->address; } /** * @param field_type $name */ public function setName($name) { $this->name = $name; } /** * @param field_type $age */ public function setAge($age) { $this->age = $age; } /** * @param field_type $address */ public function setAddress($address) { $this->address = $address; } } $p = new person(); $p->name = '王宝强'; echo "value:",$p->name;
__set() __get()
相关文章推荐
- 玩转vsftpd服务器的四大高级配置
- 学习ThinkPHP3.2.2:video8完成后的完整代码
- 学习ThinkPHP3.2.2:video8,高难度创新——让许愿墙更漂亮一些
- 学习ThinkPHP3.2.2:video8,在模板中用随机数函数输出1-5的随机数
- 学习ThinkPHP3.2.2:video8,设置TMPL_VAR_IDENTIFY变量,提高运行速度
- 学习ThinkPHP3.2.2:video8,控制器方法中定义的变量在模板中调用并显示
- 学习ThinkPHP3.2.2:video8,以数组方式显示插入的记录
- 学习ThinkPHP3.2.2:video8,提交页面后的处理方法包括有效判断数据插入页面跳转功能
- 学习ThinkPHP3.2.2:video8,用M函数的delete方法删除wish表中的所有数据
- 学习ThinkPHP3.2.2:video8,把提交的的数据插入数据库
- 学习ThinkPHP3.2.2:video8,用I函数解析接收的参数值
- 学习ThinkPHP3.2.2:video8,_404函数已废除,用E函数替代
- 学习ThinkPHP3.2.2:video8,判断是否post提交数据
- PHP递归打印
- wamp下配置Smarty
- ThinkPHP的CURD
- PHP学习笔记
- 从 PHP 5.4.x 迁移到 PHP 5.5.x
- ThinkPHP3.2.3升级的若干问题和注意事项
- php下载文件错误,文件损坏,编码错误,有空格