php - PHP:数组引用其他数组(无意)
问题描述
问题是执行下面的代码时会打印什么?
我的回答是:
arr[0]=1 and arr2[0]=2
但显然,没有。从执行过程中可以看出,答案似乎是 arr[0]=2 和 arr2[0]=2。现在,这让我感到困惑 - 如果它甚至没有被引用,为什么会arr[0]
是 2,因此在修改时不应该改变arr2[0]
?
$a = 1;
$arr = array(1);
$a = &$arr[0]; //$a=1
$arr2 = $arr;
$arr2[0]++; //$arr2[0]=2
echo "arr[0]=".$arr[0]. "<br>";
echo "arr2[0]=".$arr2[0]. "<br>";
我可能遗漏了一些令人尴尬的明显东西,但似乎无法弄清楚。提前致谢!
解决方案
<?php
$a = 1;
$arr = array(1);
$a = $arr[0]; //$a=1
$arr2 = $arr;
$arr2[0]++; //$arr2[0]=2
echo "arr[0]=".$arr[0]. "<br>";
echo "arr2[0]=".$arr2[0]. "<br>";
删除 & $a = &$arr[0];
,你会得到你的预期结果
在 php 中阅读更多关于 & 符号的信息!!!
推荐阅读
- assembly - 缓冲区溢出链接
- javascript - 如何将 JSON 转换为 multipart/form-data
- reactjs - 如何解决 gatsby js 中的依赖错误?
- c# - Polly 同步重试
- javascript - 状态的功能被另一个状态破坏了?
- javascript - 有没有办法使用反应将此字典列出到前端(显示在浏览器中)?
- python - 抓取超时。:在 pypylon usb 相机帧抓取中抛出 TimeoutException(文件'InstantCameraImpl.h',第 1064 行)
- arrays - 切换数组元素的问题
- yaml - 将逗号分隔的字符串转换为 yaml 中的列表
- css - 如何修复网页的移动可读性?