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 中文处理函数集合
Aug 27 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
开源php中文分词系统SCWS安装和使用实例
Apr 11 PHP
smarty中英文多编码字符截取乱码问题解决方法
Oct 28 PHP
PHP中使用addslashes函数转义的安全性原理分析
Nov 03 PHP
php中ob_flush函数和flush函数用法分析
Mar 18 PHP
php实现scws中文分词搜索的方法
Dec 25 PHP
Zend Framework教程之Autoloading用法详解
Mar 08 PHP
JSON字符串传到后台PHP处理问题的解决方法
Jun 05 PHP
PHP编程实现脚本异步执行的方法
Aug 09 PHP
php微信开发之关键词回复功能
Jun 13 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
Sep 16 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/09/29 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
详解jQuery中的事件
2016/12/14 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
最实用的JS数组函数整理
2017/12/05 Javascript
js中DOM事件绑定分析
2018/03/18 Javascript
详解Vue文档中几个易忽视部分的剖析
2018/03/24 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
python删除过期文件的方法
2015/05/29 Python
Python中字符串格式化str.format的详细介绍
2017/02/17 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
Python 实现字符串中指定位置插入一个字符
2018/05/02 Python
django实现用户注册实例讲解
2019/10/30 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
CSS3之2D与3D变换的实现方法
2019/01/28 HTML / CSS
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
初中三年学生的学习自我评价
2013/11/13 职场文书
安全资金保障制度
2014/01/23 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
文明村镇申报材料
2014/05/06 职场文书
中专毕业生的自荐书
2014/07/01 职场文书
共产党员批评与自我批评
2014/10/15 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
2016自主招生教师推荐信范文
2015/03/23 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
Python 内置函数速查表一览
2021/06/02 Python