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 和 MySQL 基础教程(一)
Oct 09 PHP
php缓存技术介绍
Nov 25 PHP
php获取当前网址url并替换参数或网址的方法
Jun 06 PHP
php自动加载的两种实现方法
Jun 21 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
Jun 26 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 PHP
PHP下的浮点运算不准的解决方法
Oct 27 PHP
PHP设计模式之模板方法模式定义与用法详解
Apr 02 PHP
php使用curl伪造来源ip和refer的方法示例
May 08 PHP
php往mysql中批量插入数据实例教程
Dec 12 PHP
phpfpm的作用和用法
Oct 10 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
Oct 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列出一个目录下的所有文件的代码
2012/10/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
php格式化日期实例分析
2014/11/12 PHP
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
2009/09/09 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
JS实现的合并多个数组去重算法示例
2018/04/11 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
使用Python抓取模板之家的CSS模板
2015/03/16 Python
python中列表元素连接方法join用法实例
2015/04/07 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
在python中做正态性检验示例
2019/12/09 Python
Pytorch之parameters的使用
2019/12/31 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
详解pandas映射与数据转换
2021/01/22 Python
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
英国医生在线预约:Top Doctors
2019/10/30 全球购物
校园自助餐厅的创业计划书
2013/12/26 职场文书
婚礼新郎父母答谢词
2014/01/16 职场文书
幼儿园教师辞职信
2014/01/18 职场文书
大学生职业生涯规划书汇总
2014/03/20 职场文书
个人合作协议书范本
2014/04/18 职场文书
社区服务活动报告
2015/02/05 职场文书
教师年度考核个人总结
2015/02/12 职场文书
暑假安全保证书
2015/02/28 职场文书
婚育证明样本
2015/06/16 职场文书
圣诞晚会主持词
2015/07/01 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python