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.ini中文版(2)
Oct 09 PHP
PHP CURL模拟GET及POST函数代码
Apr 25 PHP
php5 apache 2.2 webservice 创建与配置(java)
Jan 27 PHP
PHP中文件缓存转内存缓存的方法
Dec 06 PHP
更改localhost为其他名字的方法
Feb 10 PHP
php发送post请求函数分享
Mar 06 PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 PHP
php准确计算复活节日期的方法
Apr 18 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
浅析PHP7 的垃圾回收机制
Sep 06 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 PHP
PHP7原生MySQL数据库操作实现代码
Jul 03 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
php中static和const关键字用法分析
2016/12/07 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
Ajax异步提交表单数据的说明及方法实例
2013/06/22 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
JQuery导航菜单选择特效
2016/04/11 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
Python的time模块中的常用方法整理
2015/06/18 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
Python中类的创建和实例化操作示例
2019/02/27 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
django model通过字典更新数据实例
2020/04/01 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
夜大自我鉴定
2013/10/31 职场文书
春节联欢会主持词
2014/03/24 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
师德承诺书
2015/01/20 职场文书
党委工作总结2015
2015/04/27 职场文书
高老头读书笔记
2015/06/30 职场文书
2016新年致辞
2015/08/01 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书
各种货币符号快捷输入
2022/02/17 杂记
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技