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 相关文章推荐
模拟OICQ的实现思路和核心程序(三)
Oct 09 PHP
php 字符过滤类,用于过滤各类用户输入的数据
May 27 PHP
php_xmlhttp 乱码问题解决方法
Aug 07 PHP
PHP学习之字符串比较和查找
Apr 17 PHP
php的一个简单加密解密代码
Jan 14 PHP
ThinkPHP Mobile使用方法简明教程
Jun 18 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
Apr 28 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
PHP使用SOAP调用API操作示例
Dec 25 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 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
剖析 PHP 中的输出缓冲
2006/12/21 PHP
php生成excel列序号代码实例
2013/12/24 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
php采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
ExpressJS入门实例
2015/01/14 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
2017/01/19 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
jQuery length 和 size()区别总结
2018/04/26 jQuery
对vue下点击事件传参和不传参的区别详解
2018/09/15 Javascript
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
详解Python的迭代器、生成器以及相关的itertools包
2015/04/02 Python
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
Python实现翻转数组功能示例
2018/01/12 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
高档奢华时装在线目的地:FORWARD by elyse walker
2017/10/16 全球购物
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
巴西体育用品商店:Lojão dos Esportes
2018/07/21 全球购物
应届大学生自荐信格式
2013/09/21 职场文书
医学院学生的自我评价分享
2013/11/19 职场文书
庆元旦广播稿
2014/02/10 职场文书
汽修专业自荐信
2014/07/07 职场文书
农行心得体会
2014/09/02 职场文书
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL
logback如何自定义日志存储
2021/08/30 Java/Android