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 相关文章推荐
Linux Apache PHP Oracle 安装配置(具体操作步骤)
Jun 17 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
Jun 05 PHP
PHP魔术引号所带来的安全问题分析
Jul 15 PHP
php图片水印添加、压缩、剪切的封装类实现
Apr 18 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 PHP
浅谈PHP的反射机制
Dec 15 PHP
ZendFramework2连接数据库操作实例
Apr 18 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
使用PHP反射机制来构造"CREATE TABLE"的sql语句
Mar 21 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 27 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 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
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
Javascript中replace()小结
2015/09/30 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
Bootstrap CSS组件之输入框组
2016/12/17 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
js判断手机系统是android还是ios
2017/03/07 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
python实现sublime3的less编译插件示例
2014/04/27 Python
Python 序列的方法总结
2016/10/18 Python
Python 3中的yield from语法详解
2017/01/18 Python
Python中标准模块importlib详解
2017/04/16 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
python实现推箱子游戏
2020/03/25 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python如何设置静态变量
2020/09/07 Python
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
会计学生自我鉴定
2014/02/06 职场文书
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
小学班主任寄语大全
2014/04/04 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
教代会闭幕词
2015/01/28 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android