php -- 魔术方法 之 获取属性:__get()
2015-07-17 11:50
736 查看
属性重载:当访问一个不存在或者权限不够的属性的时候,能够触发一系列的魔术方法,就叫做属性重载 __get():获取不存在或者权限不够的属性的时候会自动触发
<?php header('Content-type:text/html;charset=utf-8'); echo '<pre>'; //PHP属性重载 class Person{ //属性 public $name; protected $money; private $age; //构造方法 public function __construct($name,$money,$age){ $this->name = $name; $this->age = $age; $this->money = $money; } //增加一个魔术方法__get //__get方法必须要一个参数,需要访问的属性的名字 public function __get($name){ //var_dump($name); $allow = array('money','age'); //让用户访问 //如果用户访问的是money和tail,那么就帮助用户去访问,如果是其他返回FALSE if(in_array($name,$allow)){ //在 [code]allow中搜索
name,如果没有,返回false,如果有返回true
return $this->$name; //$name叫做可变变量
}else{
//不存在
return false;
}
}
}
//实例化
$person = new Person('马浩洋',6000,28);
//访问个人信息
echo $person->name; //可以,访问公有属性
//echo $person->age; //不可以,age是私有属性,且Person类没有__get方法
//Person类增加__get方法之后
echo $person->age;
//访问一个不存在的
var_dump($person->tail);[/code]
意义:
1、增加代码容错性2、控制用户访问
相关文章推荐
- php -- 可变变量
- 中奖概率算法(php 可用于刮刮卡,大转盘等抽奖算法)
- php获取错误信息的方法
- PHP FTP操作类( 上传、拷贝、移动、删除文件/创建目录 )
- PHP 利用Header实现文件下载
- udev和mdev hotplug事件
- 约瑟夫环问题的链表解法和数学解法(PHP)
- Emgu Image IntPtr
- ftp
- php 循环简写
- LAMP/LNMP搭建好后输入本地网址返回PHP文件的代码
- php+mysql的utf-8中文乱码问题的解决方法
- wget下载FTP目录
- PHP实现无限级分类的2种方法——父值与左右值2
- PHP 用COOKIE实现记住上一次登陆的数据
- phpstorm下配置Xdebug
- Laravel框架如何使用阿里云ACE缓存服务
- PHP提取excel数据 - 导入MYSQL
- PHP实现可编辑查询下拉框
- Exchange 2007 被 SMTP中继***一例