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 )
参照によって渡されますが、明らかに配列値を変更しません。