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 相关文章推荐
从Web查询数据库之PHP与MySQL篇
Sep 25 PHP
探讨:parse url解析URL,返回其组成部分
Jun 14 PHP
请离开include_once和require_once
Jul 18 PHP
php ctype函数中文翻译和示例
Mar 21 PHP
php使用ereg验证文件上传的方法
Dec 16 PHP
Yii2.0 模态弹出框+ajax提交表单
May 22 PHP
php实现base64图片上传方式实例代码
Feb 22 PHP
Yii2实现ActiveForm ajax提交
May 26 PHP
PHP中的self关键字详解
Jun 23 PHP
php+layui数据表格实现数据分页渲染代码
Oct 26 PHP
PHP的new static和new self的区别与使用
Nov 27 PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 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使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
php实现无限级分类查询(递归、非递归)
2016/03/10 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
jQuery 性能优化指南(2)
2009/05/21 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
Javascript 按位取反运算符 (~)
2014/02/04 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
webpack之devtool详解
2018/02/10 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
使用Nuxt.js改造已有项目的方法
2018/08/07 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
基于Python的关键字监控及告警
2017/07/06 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
使用Python在Windows下获取USB PID&VID的方法
2019/07/02 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
3D空间设计学生找工作的自我评价
2013/10/28 职场文书
手机促销活动方案
2014/02/05 职场文书
保护环境倡议书
2014/04/14 职场文书
协议书模板
2014/04/23 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
2014年财务个人工作总结
2014/12/08 职场文书
给领导的感谢信范文
2015/01/23 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书