php - 是什么让数组变量改变了它的值,即使它是由 val 分配的,而不是引用
问题描述
$a = array();
$var=array();
$a = array_fill(1, 3, '1');
test($a,$var);
$b = $a;
echo print_r($b).NL;
$a[2]='3';
echo print_r($b).NL;
function test(&$a,&$var){
foreach($a as $i =>$v)
{
$var[$i]= &$a[$i];
}
Array ( [1] => 1 [2] => 1 [3] => 1 ) 1
Array ( [1] => 1 [2] => 3 [3] => 1 ) 1
在数组 $b 中输出 3,即使它是由 val 复制的。看起来好像是在以某种方式$var[$i]= &$a[$i];
做出这种行为,但正如您所见,地址被分配给 $var 而不是 $b。
解决方案
推荐阅读
- sql-server - 使用 SQL Server Ping IP 地址
- ajax - 如何在这个 wordpress 循环中添加加载更多按钮 ajax 按钮?
- c# - 相同表/类的 SQL 表设计
- c# - C# 为 ASP.NET Core 使用 System.Data.DataSet?
- django - IIS 上 django 中 POST 请求的状态 500
- c# - EF 6.0 未从具有多个 DBcontexts 的数据库生成的值返回 PK 键值
- jenkins - 如何使用 ${currentBuild.result} 表示“SUCCESS”而不是“null”
- javascript - 用于选择产品尺寸或颜色的类似电子商务的功能
- angular - 获取所有数据后显示表格(ag网格)
- android - “远程调试 JS”在做什么?