php数组遍历默认是值传递而不是引用。
在变量赋值时,任意变量均可引用:
<?php
// 数组引用
$arr = array("a","b");
$b = & $arr;
$b['c'] = "c";
var_dump($b);
echo "<br>";
var_dump($arr); // 0->"a",1->"b","c"->"c"
echo "<br>";
// 基本对象引用
$a = 2;
$aa = & $a;
$aa = 3;
echo $a;
// 3
使用以下语法让php遍历引用一个数组:
foreach ( $array as & $value ) {
实例:
<?PHP
$authors = array( "Java", "PHP", "CSS", "HTML" );
foreach ( $authors as & $val ) {
if ( $val == "CSS" ) $val = "Javascript";
echo $val . " ";
}
unset( $val );
print_r ( $authors );
?>
注意:
$unset($val) 确保 $val 变量在循环已完成。
当循环结束时,$ val仍然保存对最后一个元素的引用。在我们的代码中更改$ val改变$ authors数组的最后一个元素。通过取消设置$ val,我们避免潜在的错误。