php - 使用三元运算符和引用值的 foreach 中的意外行为
问题描述
为什么以下代码在 PHP 5.5.* 和 PHP 7.* 中有不同的输出:
<?php
$foo = ['bar'=>[['item1'=>'value1']]];
foreach ($foo['bar'] ?: [] as $k => &$arr1) {
$arr1['item1'] = 'value2';
}
var_dump($foo);
在 PHP 5 中, 的值$foo['bar'][0]['item1']
会被 修改value2
,但在 PHP 7 中不会。
解决方案
推荐阅读
- android - 一些新添加的方法上未显示 Android Studio API 级别警告
- excel - Excel VBA 中的基本布尔问题:输出 -1
- swift - StackView 水平包装内容
- python - 使用 igraph python 查找图的巨型组件的直径和平均最短路径长度
- sql - 合并具有相同列值的行
- java - Why my Object ArrayList loop result is incorrect?
- python - 在opencv中应用索贝尔和拉普拉斯滤波器后的图像边缘检测
- java - Selenium 中 Action 类的 Keys.DELETE 没有被删除
- android - 无法实例化一个或多个类 TextInputEditText 内部错误
- c++ - C函数的C++回调