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 高手之路(二)
Oct 09 PHP
最简单的PHP程序--记数器
Oct 09 PHP
基于mysql的论坛(6)
Oct 09 PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 PHP
PHP中使用json数据格式定义字面量对象的方法
Aug 20 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
php使用PDO方法详解
Dec 27 PHP
PHP list() 将数组中的值赋给变量的简单实例
Jun 13 PHP
如何使用php等比例缩放图片
Oct 12 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
Phpstorm+Xdebug断点调试PHP的方法
May 14 PHP
PHP实现的函数重载功能示例
Aug 03 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实现Mysql简易操作类
2015/10/11 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
php的4种常用运行方式详解
2016/12/22 PHP
php读取本地json文件的实例
2018/03/07 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
js按条件生成随机json:randomjson实现方法
2017/04/07 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
mui框架移动开发初体验详解
2017/10/11 Javascript
在 Angular中 使用 Lodash 的方法
2018/02/11 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
2019/03/27 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
中职应届生会计求职信
2013/10/23 职场文书
2014迎新年晚会策划方案
2014/02/23 职场文书
个人公开承诺书
2014/03/28 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
Python pandas之求和运算和非空值个数统计
2021/08/07 Python