我试图理解PHP中的以下代码。这是概述,
有2个数组,由表格中的键值对组成,$ k => $ V
使用array_merge函数将这两个数组合并在一起,形成第三个数组。
现在,这个数组被传递给一个函数。只有一个参数,传递数组名称。
以下是代码(请注意,此代码只是一个概念,而不是真正的代码):
<?php
function test(&$myArray, 0)
{
reset($myArray);
foreach ($myArray as $k => $v)
{
....
}
}
$arr3 = array_merge((array) $arr1, (array) $arr2);
test($arr3)
}
问题:
在这种情况下,如果查看原型,数组名称前面会有一个&符号。那么,这意味着,对数组的引用,地址?
为什么需要在阵列上调用reset函数。是因为在测试函数之前调用了用于形成此数组的array_merge函数吗?因此,由于合并$ arr1和$ arr2,它将指针移动到第一个元素之前的数组中?
函数test中没有返回任何值。那么,它是否会修改内存本身中原始数组的值,因此不需要返回数组?
感谢。
答案 0 :(得分:1)
<?php
function test($myArray,$a =0) //passing by value
{
reset($myArray);
return $myArray;
}
$arr3 = test($arr3); //call n store it back it in $arr3
function test(&$myArray,$a =0) //passing by reference
{
reset($myArray);
}
test($arr3); //just call;
?>