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
php关于array_multisort多维数组排序的使用说明
Jan 04 PHP
利用PHP将部分内容用星号替换
Apr 21 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 PHP
微信支付的开发流程详解
Sep 13 PHP
php fread读取文件注意事项
Sep 24 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
Mar 15 PHP
Thinkphp5框架使用validate实现验证功能的方法
Aug 27 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
Feb 10 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
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
用php+ajax新建流程(请假、进货、出货等)
2017/06/11 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
python进阶教程之异常处理
2014/08/30 Python
matplotlib绘制动画代码示例
2018/01/02 Python
python模块smtplib学习
2018/05/22 Python
python3 re返回形式总结
2020/11/20 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
康拓普公司Java笔面试
2016/09/23 面试题
STP的判定过程
2012/10/01 面试题
物业管理个人自我评价
2013/11/08 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
幼儿园教师教育随笔
2015/08/14 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
redis cluster支持pipeline的实现思路
2021/06/23 Redis