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批量生成缩略图的代码
Jul 19 PHP
如何使用php输出时间格式
Aug 31 PHP
PHP swfupload图片上传的实例代码
Sep 30 PHP
php多功能图片处理类分享(php图片缩放类)
Mar 14 PHP
神盾加密解密教程(二)PHP 神盾解密
Jun 08 PHP
PHP实现指定字段的多维数组排序函数分享
Mar 09 PHP
学习php设计模式 php实现单例模式(singleton)
Dec 07 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
自制PHP框架之模型与数据库
May 07 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
Jun 17 PHP
Laravel 修改默认日志文件名称和位置的例子
Oct 17 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
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
php 变量未定义等错误的解决方法
2011/01/12 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
jquery衣服颜色选取插件效果代码分享
2015/08/28 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
最细致的vue.js基础语法 值得收藏!
2016/11/03 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
Angular5.1新功能分享
2017/12/21 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
centos系统升级python 2.7.3
2014/07/03 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
python中range()与xrange()用法分析
2016/09/21 Python
详解django自定义中间件处理
2018/11/21 Python
Python turtle画图库&&画姓名实例
2020/01/19 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
python获取整个网页源码的方法
2020/08/03 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
上课迟到检讨书100字
2014/01/11 职场文书
高中生自我评语大全
2014/01/19 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
六年级小学生评语
2014/12/26 职场文书
西双版纳导游词
2015/02/03 职场文书
经费申请报告
2015/05/15 职场文书
八月迷情观后感
2015/06/11 职场文书
2016先进工作者事迹材料
2016/02/25 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server
oracle数据库去除重复数据
2022/05/20 Oracle