"naranja", "b" =>-6ren">
gpt4 book ai didi

PHP 数组按引用传值

转载 作者:行者123 更新时间:2023-12-02 22:39:24 25 4
gpt4 key购买 nike

我有一小段代码用于测试 array_walk 测试。

我以为我可以对 foreach 做同样的事情,但是当我传递值时它不会被修改:

<?php
$frutas = [ "d" => "limón", "a" => "naranja", "b" => "banana", "c" => "manzana" ];

function test_alter(&$elemento)
{
$elemento = "prefijo: $elemento";
echo "$elemento <br>";
}

foreach($frutas as $clave => $valor) {
test_alter($valor, $clave);
}
print_r( $frutas );
?>

哪些输出:

prefijo: limón
prefijo: naranja
prefijo: banana
prefijo: manzana
Array ( [d] => limón [a] => naranja [b] => banana [c] => manzana )

显然没有修改数组值,尽管它是通过引用传递的。

最佳答案

您正在将 $valor 传递给函数 ... foreach 值不是“引用”值,因此您更改的是临时值,而不是实际的数组值...

在你的 foreach 循环中试试这个:

test_alter($frutas[$clave]);

或者,您可以:

foreach($frutas as $clave => &$valor){
test_alter($valor, $clave);
}

关于PHP 数组按引用传值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10939130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com