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 定界符 使用技巧
Jun 14 PHP
php操作excel文件 基于phpexcel
Jul 02 PHP
深入解析php之apc
May 15 PHP
PHP数据库链接类(PDO+Access)实例分享
Dec 05 PHP
PHP 实现类似js中alert() 提示框
Mar 18 PHP
解决PHP里大量数据循环时内存耗尽的方法
Oct 10 PHP
php生成txt文件实例代码介绍
Apr 28 PHP
CakePHP框架Model函数定义方法示例
Aug 04 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
Nov 25 PHP
PHP获取链表中倒数第K个节点的方法
Jan 18 PHP
php查询内存信息操作示例
May 09 PHP
php+lottery.js实现九宫格抽奖功能
Jul 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
XHProf报告字段含义的解析
2016/05/17 PHP
php图片添加水印例子
2016/07/20 PHP
PHP入门教程之操作符与控制结构流程详解
2016/09/09 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
2016/10/11 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
javascript中神奇的 Date对象小结
2017/10/12 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
python实现银行管理系统
2019/10/25 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
python 写一个文件分发小程序
2020/12/05 Python
python Scrapy框架原理解析
2021/01/04 Python
python基于selenium爬取斗鱼弹幕
2021/02/20 Python
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
职业规划书如何设计?
2014/01/09 职场文书
《忆江南》教学反思
2014/04/07 职场文书
优秀护士先进事迹
2014/05/08 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
Python爬取某拍短视频
2021/06/11 Python