php类中的各种拦截器用法分析
本文实例讲述了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脚本使WordPress拦截垃圾评论的方法示例
拦截英文垃圾评论 由于绝大多数的垃圾评论都是英文的,所以国内不少朋友在使用 Some Chinese Please 插件,它可以有效地拦截内容中不带有中文字的comment和trackback(pingback),不写入数据库中,可有效地减小spam对blog服务器的无谓使用.虽然已经 2 年多没有更新,但还是可用的. 其实还可以简化下,直接将下面的代码添加到主题的 functions.php 文件,效果与使用 Some Chinese Please 插件相同: /* refused spam
-
PHP错误提示的关闭方法详解
最简单的办法就是直接在php程序代码中加入下面代码: 复制代码 代码如下: error_reporting(E_ALL^E_NOTICE^E_WARNING); 可以关闭所有notice 和 warning 级别的错误. 把这个语句放在您脚本的功用包含文件中,通常为config.php 或者conn.php 中就可以控制输出了. 当然我也也可以在php.ini中进行设置了方法如下 打开PHP安装目录下的php.ini文件 找到display_errors = On 修改为 display_err
-
PHP的拦截器实例分析
本文实例讲述了PHP的拦截器用法.分享给大家供大家参考.具体如下: PHP提供了几个拦截器,用于在访问未定义的方法和属性时被调用,如下所示: 1.__get($property) 功能:访问未定义的属性是被调用 2.__set($property, $value) 功能:给未定义的属性设置值时被调用 3.__isset($property) 功能:对未定义的属性调用isset()时被调用 4.__unset($property) 功能:对未定义的属性调用unset()时被调用 5.__call(
-
php错误级别的设置方法
PHP在运行时, 针对严重程度不同的错误,会给以不同的提示. eg:在$a没声明时,直接相加,值为NULL,相加时当成0来算.但是,却提示NOTICE,即注意. 我们在开发中, 为了程序的规范性,把报错级别,调的比较高NOTICE级别的也报出来,有助于我们快速定位错误和代码规范,但是,在产品上线后,网站运营过程中,就不宜报这么多错. 1:这种错误给客户的印象不好 2:在报错时,把网站的绝对路径,如D:\www\1015都报出来了.增大被攻击的风险 因此,在网站上线后,就应该让报错级降低,少报错甚
-
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
在日常开发中,大多数人的做法是在开发环境时开启调试模式,在产品环境关闭调试模式.在开发的时候可以查看各种错误.异常,但是在线上就把错误显示的关闭. 上面的情形看似很科学,有人解释为这样很安全,别人看不到错误,以免泄露重要信息... 但是你有没有遇到这种情况,线下好好的,一上线却运行不起来也找不到原因... 一个脚本,跑了好长一段时间,一直没有问题,有一天突然中断了,然后了也没有任何记录都不造啥原因... 线上一个付款,别人明明付了款,但是我们却没有记录到,自己亲自去实验,却是好的... 种种以上
-
php类中的各种拦截器用法分析
本文实例讲述了php类中的各种拦截器用法.分享给大家供大家参考.具体用法分析如下: 1.__get( $property ) 访问未定义的属性时调用 复制代码 代码如下: class lanjie { function __get($name) { echo $name." property not found! "; } } $ob = new lanjie(); echo $ob->g; 当我们调用对象$ob未定义的属性g
-
vue中Axios添加拦截器刷新token的实现方法
目录 1. Axios基本用法: 2. Axios基本封装用法: 3. 添加拦截器的用法 4. 注意事项: Axios是一款网络前端请求框架,基本用法如下: 1. Axios基本用法: const response = await Axios.create({ baseURL: "https://test.api.com", headers: { 'Content-Type': 'application/json', }, }).post<RequestResponse>(
-
详解SpringMVC中使用Interceptor拦截器
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间. 一.定义Interceptor实现类 SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的.在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Interce
-
Angular中的interceptors拦截器
废话不多说了,直接给大家贴代码了,具体代码如下所述: <!DOCTYPE html> <html ng-app="nickApp"> <head> <meta charset="UTF-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-
-
django模型类中,null=True,blank=True用法说明
1.模型类中设置:null=True,表示数据库创建时该字段可不填,用NULL填充. MySQL: Null这一列,如果值为YES表示:创建一条新记录时,该字段可不填,数据库会用默认值NULL填充.django模型类中声明null=True即可. desc = models.CharField(max_length=100, null=True, blank=True, verbose_name='角色描述', help_text='角色描述') 2.模型类中设置:blank=True,表示代码
-
python爬虫中的url下载器用法详解
前期的入库筛选工作已经由url管理器完成了,整理的工作自然要由url下载器接手.当我们需要爬取的数据已经去重后,下载器的主要任务的是这些数据下载下来.所以它的使用也并不复杂,不过需要借助到我们之前所学过的一个库进行操作,相信之前的基础大家都学的很牢固.下面小编就来为大家介绍url下载器及其使用的方法. 下载器的作用就是接受URL管理器传递给它的一个url,然后把该网页的内容下载下来.python自带有urllib和urllib2等库(这两个库在python3中合并为urllib),它们的作用就是
-
Yii数据模型中rules类验证器用法分析
本文实例讲述了Yii数据模型中rules类验证器用法.分享给大家供大家参考,具体如下: public function rules() { return array( array('project_id, type_id, status_id, owner_id, requester_id,', 'numerical', 'integerOnly'=>true), array('name', 'length', 'max'=>256), array('description', 'length
-
Android的OkHttp包中的HTTP拦截器Interceptor用法示例
OkHttp(GitHub:https://github.com/square/okhttp) 的 Interceptor 就如同名称「拦截器」一样,拦截你的 Request 做一些你想做的事情再送出去.例如: 1.自动加上使用者目前使用的语言送出去取得对应语言的回传内容. 2.将 Request 计算出这个 Request 的 sigunature 再附加上送出去. 在 okHttp 中分成 Application Interceptor 和 Network Interceptor 两种. A
-
浅析java中 Spring MVC 拦截器作用及其实现
拦截器的实现 1.编写拦截器类实现HandlerInterceptor接口: 2.将拦截器注册进springmvc框架中: 3.配置拦截器的拦截规则: 其他实现方法 WebRequestInterceptor接口: 与上一个的区别是参数区别和prehandle的方法没有返回值.没有上一个功能全,因此常用第一个. 拦截器的使用场景 处理所有请求共性问题: 1.乱码问题:用request,response参数去设置编码: 2.解决权限验证问题(是否登陆,取session对象查看): 拦截器与过滤器
随机推荐
- 在Thinkphp中使用ajax实现无刷新分页的方法
- 关于表格的正则表达式讨论(表格)
- win10环境下python3.5安装步骤图文教程
- 解决iis7.5服务器上.net 获取不到https页面的信息
- 基于自定义Unity生存期模型PerCallContextLifeTimeManager的问题
- 分享一段PHP制作的中文拼音首字母工具类
- android开发教程之文本框加滚动条scrollview
- C#冒泡法排序算法实例分析
- C# MVC 微信支付教程系列之公众号支付代码
- WordPress入门指南-wordpress安装使用说明
- Android EditText禁止输入空格和特殊字符
- JaveScript中的几个关键概念的理解-原型链的构建
- 详解webpack异步加载业务模块
- Ajax传递中文参数到后台乱码的有效解决方法
- jQuery插件ajaxFileUpload使用实例解析
- Android之使用Android-query框架开发实战(二)
- MSSQL数据库获取TEXT字段的内容长度
- jQuery操作select下拉框的text值和value值的方法
- js事件处理程序跨浏览器解决方案
- vue项目中应用ueditor自定义上传按钮功能