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 相关文章推荐
如何过滤高亮显示非法字符
Oct 09 PHP
全世界最小的php网页木马一枚 附PHP木马的防范方法
Oct 09 PHP
PHP中读写文件实现代码
Oct 20 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
完美解决PHP中的Cannot modify header information 问题
Aug 12 PHP
php cookie使用方法学习笔记分享
Nov 07 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
Jul 25 PHP
php利用ob_start()清除输出和选择性输出的方法
Jan 18 PHP
PHP的RSA加密解密方法以及开发接口使用
Feb 11 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
PHP单元测试框架PHPUnit用法详解
Jan 23 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
mac下安装nginx和php
2013/11/04 PHP
在openSUSE42.1下编译安装PHP7 的方法
2015/12/24 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
js倒计时抢购实例
2015/12/20 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
小程序实现搜索框
2020/06/19 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
python使用xlsxwriter实现有向无环图到Excel的转换
2018/12/12 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
CSS3制作苹果风格键盘特效
2015/02/26 HTML / CSS
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
电气自动化大学生求职信
2013/10/16 职场文书
商场主管竞聘书
2014/03/31 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
电影圆明园观后感
2015/06/03 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书
方法汇总:Python 安装第三方库常用
2022/04/26 Python