Non sono sicuro se questo è considerato un bugL'aggiunta di riferimenti in PHP ad un array crea un array di riferimenti
$array = ['numbers' => [1, 2, 3]];
foreach ($array as &$numbers) {
$numbers = [4, 5, 6];
}
var_dump($array);
modify_array($array);
var_dump($array);
function modify_array($array_arg)
{
$array_arg['numbers'] = [1, 2, 3];
}
Stampe
array(1) {
["numbers"]=>
&array(3) {
[0]=>
int(4)
[1]=>
int(5)
[2]=>
int(6)
}
}
array(1) {
["numbers"]=>
&array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
}
Si noti che $ array non è stata approvata con riferimento a modify_array () tuttavia l'array nidificato è stato modificato. Sembra logico, ma non è sicuro se questo è documentato!
Voglio solo dire che se qualcuno vuole la conferma: http: //codepad.viper-7. com/hcpoWB L'unica cosa che ho aggiunto è stata la linea con il tag br. –
"Se non lo fai, otterrai risultati imprevedibili" --- cosa ci dice che i risultati devono essere * imprevedibili *? L'avvertenza che hai citato non spiega il comportamento. – zerkms
Sono d'accordo, i risultati sarebbero molto prevedibili secondo l'Avvertimento, ma questa è ancora una risposta utile oltre a questo. – PHPglue