在 PHP 中传递参数和分配数组
数组是 PHP 中的重要数据结构,通常传递给函数或分配给变量。但是,了解这些操作如何影响其底层引用非常重要。
数组作为函数参数
当数组作为参数传递给函数时,它是默认情况下作为副本传递。这意味着该函数对副本本身进行操作,而不修改原始数组。假设该函数对数组进行了更改;这些更改不会反映在函数外部的原始数组中,除非明确指示函数通过引用进行操作。
function my_func($a) { $a[] = 30; } $arr = array(10, 20); my_func($arr); var_dump($arr); // Output: array(10, 20)
通过引用传递数组并允许函数修改原始数组,该函数必须声明为:
function my_func(& $a) { $a[] = 30; }
现在,函数内所做的更改将反映在函数。
分配数组
将数组分配给新变量时,分配会创建数组的新副本,除非使用引用运算符 &。这意味着原始数组和新分配的变量是分开的,对其中一个的更改不会影响另一个。
$a = array(1, 2, 3); $b = $a; $b[] = 4; // $a still contains the original array (1, 2, 3)
要按引用分配,必须使用引用运算符 &:
$a = array(1, 2, 3); $b = & $a; $b[] = 4; // Both $a and $b now contain (1, 2, 3, 4)
以上是PHP 如何通过引用处理数组传递和赋值?的详细内容。更多信息请关注PHP中文网其他相关文章!