function refArray(&$arr) { var_dump($arr); $refs = []; foreach ($arr as $key => $value) $refs[$key] = &$arr[$key]; var_dump($refs); return $refs; } $arry = [3, "hello", 0.8, null]; $referenceArray = refArray($arry); echo "----------------------\r\n"; var_dump($arry); var_dump($referenceArray);
与
function refArray($arr) { var_dump($arr); $refs = []; foreach ($arr as $key => $value) $refs[$key] = &$arr[$key]; var_dump($refs); return $refs; } $arry = [3, "hello", 0.8, null]; $referenceArray = refArray($arry); echo "----------------------\r\n"; var_dump($arry); var_dump($referenceArray);
如果没有将与函数的arry函数的arr进行引用赋值,那么传入的是副本,返回之后副本就会被销毁,那么arry副本,返回之后副本就会被销毁,那么refs 也就不再是引用赋值了,它所引用的副本没了。