php类中的各种拦截器用法分析


Posted in PHP onNovember 03, 2014

本文实例讲述了php类中的各种拦截器用法。分享给大家供大家参考。具体用法分析如下:

1、__get( $property ) 访问未定义的属性时调用

class lanjie  

{  

    function __get($name)  

    {  

        echo $name." property not found! ";  

    }  

} 
$ob = new lanjie();  

echo $ob->g;

当我们调用对象$ob未定义的属性g时,调用拦截器__get()方法,输出"g property not found!”;

2、__set( $property , $value ) 给未定义的属性调用时赋值

class person  

{  

    private $_age;  

    private $_name;  

    function __set($name, $value)  

    {  

        $method = "set".  ucfirst($name);  

        echo $method;  

        if(method_exists($this, $method) )  

        {  

            return $this->$method( $value );  

        }  

    }  

      

    function setName( $name )  

    {  

        $this->_name = $name;  

        if( !is_null($this->_name) )  

        {  

            $this->_name = strtoupper($this->_name);  

        }  

    }  

    function setAge( $age )  

    {  

        return $this->_age = (int)$age;  

    }  

}  

  

$p = new person();  

$p->name = 'bob';  

print_r( array( $p ) );

这里我们可以很清楚的看到 , 当给未定义的'name'赋值时 ,  会调用"__set()”

其他的还有 __call(), __isset() , __unset();
这里最有用和最常用的的是__call() , 当调用一个为存在的方法时被调用; __isset()是在对一个为定义的属性使用isset()函数时被调用, __unset是在对未定义的数以使用unset时被调用

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
傻瓜化配置PHP环境――Appserv
Dec 13 PHP
PHP $_SERVER详解
Jan 16 PHP
php中计算时间差的几种方法
Dec 31 PHP
php smarty 二级分类代码和模版循环例子
Jun 16 PHP
PHP采集腾讯微博的实现代码
Jan 19 PHP
Discuz!X中SESSION机制实例详解
Sep 23 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
Feb 26 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
May 31 PHP
PHP结合Ueditor并修改图片上传路径
Oct 16 PHP
PHP读取Excel类文件
May 15 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
PHP类的反射用法实例
Nov 03 #PHP
php之curl设置超时实例
Nov 03 #PHP
PHP中使用addslashes函数转义的安全性原理分析
Nov 03 #PHP
php中$_GET与$_POST过滤sql注入的方法
Nov 03 #PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
Nov 03 #PHP
php防止sql注入之过滤分页参数实例
Nov 03 #PHP
详解PHP导入导出CSV文件
Nov 03 #PHP
You might like
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
2018/03/12 PHP
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
AngularJS的ng Http Request与response格式转换方法
2016/11/07 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
Vue中常用rules校验规则(实例代码)
2019/11/14 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
python itchat实现微信自动回复的示例代码
2017/08/14 Python
使用python3实现操作串口详解
2019/01/01 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
css3的transform造成z-index无效解决方案
2014/12/04 HTML / CSS
html5 利用重力感应实现摇一摇换颜色可用来做抽奖等等
2014/05/07 HTML / CSS
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
工程地质勘察专业大学生求职信
2013/10/13 职场文书
《白鹅》教学反思
2014/04/13 职场文书
元旦联欢会策划方案
2014/06/11 职场文书
2016班级元旦联欢会开幕词
2016/03/04 职场文书