PHP7 参数处理机制修改


Posted in PHP onMarch 09, 2021

一、重复参数命名不再支持。

重复的参数命名不再支持。比如下面的代码执行的时候会报错:

public function foo($a, $b, $unused, $unused) {
          // ...
}

应该没有人这样用吧。

 

二、func_get_arg和func_get_args()调整

func_get_arg()和func_get_args()这两个方法返回参数当前的值,而不是传入时的值。当前的值有可能会被修改   

function foo($x) 
{
    $x++;
    var_dump(func_get_arg(0));
}
foo(1);

上面的代码会打印2, 而不是1。如果想打印原始的值,调用的顺序调整下即可。

 

三、同样在打印异常回溯信息的时候也是显示修改后的值。

function foo($x) 
{
    $x = 42;
    throw new Exception;
}
foo("string");

PHP7的运行结果:Stack trace:

#0 file.php(4): foo(42)
#1 {main}

PHP5的运行结果:Stack trace:

#0 file.php(4): foo('string')
#1 {main}

这个调整不会影响代码的行为,不过在调试的时候需要注意这个变化。

其他和参数有关的函数都是同样的调整,比如debug_backtrace() .

PHP 相关文章推荐
PHP中文件上传的一个问题
Sep 04 PHP
PHP JSON格式数据交互实例代码详解
Jan 13 PHP
windows下开发并编译PHP扩展的方法
Mar 18 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
Jun 28 PHP
深入理解:XML与对象的序列化与反序列化
Jun 08 PHP
简单解决新浪SAE无法上传文件的问题
May 13 PHP
分享ThinkPHP3.2中关联查询解决思路
Sep 20 PHP
PHP用FTP类上传文件视频等的简单实现方法
Sep 23 PHP
PHP插件PHPMailer发送邮件功能
Feb 28 PHP
PHP+jQuery实现即点即改功能示例
Feb 21 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
May 02 PHP
Thinkphp5框架异常处理操作实例分析
Jun 03 PHP
PHP7 foreach() 函数修改
Mar 09 #PHP
PHP7 list() 函数修改
Mar 09 #PHP
PHP7变量处理机制修改
Mar 09 #PHP
PHP7新特性
Mar 09 #PHP
Yii 实现数据加密和解密
Mar 09 #PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
Mar 09 #PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
Mar 09 #PHP
You might like
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
JS 显示当前日期与时间的代码
2010/03/24 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
2016/08/18 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
vue组件学习教程
2017/09/09 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
js验证密码强度解析
2020/03/18 Javascript
详解javascript void(0)
2020/07/13 Javascript
vuex管理状态仓库使用详解
2020/07/29 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
python使用matplotlib绘制热图
2018/11/07 Python
python实现弹跳小球
2019/05/13 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
求职自荐信
2013/12/14 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书