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 相关文章推荐
MVC模式的PHP实现
Oct 09 PHP
PHP 输出简单动态WAP页面
Jun 09 PHP
php GeoIP的使用教程
Mar 09 PHP
FirePHP 推荐一款PHP调试工具
Apr 23 PHP
PHP加Nginx实现动态裁剪图片方案
Mar 10 PHP
php微信公众平台开发类实例
Apr 01 PHP
php实现遍历多维数组的方法
Nov 25 PHP
PHP简单获取及判断提交来源的方法
Apr 22 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
详解PHP使用Redis存储session时的一个Warning定位
Jul 05 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 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程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
CSS和JS标签style属性对照表(方便js开发的朋友)
2010/11/11 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
python中as用法实例分析
2015/04/30 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
python网络编程 使用UDP、TCP协议收发信息详解
2019/08/29 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
全球知名旅游社区巴西站点:TripAdvisor巴西
2016/07/21 全球购物
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
瑞典轮胎在线:Tirendo.se
2018/06/21 全球购物
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
会计工作心得体会
2014/01/13 职场文书
医院领导班子四风对照检查材料
2014/09/27 职场文书
第二批党的群众路线教育实践活动总结报告
2014/10/30 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
python实现简单区块链结构
2021/04/25 Python