php foreach 循环数组要点
数组元素是值的情况,foreach只是将数组的每个元素的值进行拷贝:
$arr = [1,3,5]; foreach ($arr as $v) { ++$v; } print_r($arr);
数组元素是对象的情况,foreach是将数组元素的对象引用进行拷贝:
$arr = [new stdClass(), new stdClass(), new stdClass()]; foreach ($arr as $v) { $v->rdn = rand(0,99); } print_r($arr);
那么,上面普通数组也可以拥有同样的效果:
$arr = [1,3,5]; foreach ($arr as &$v) { ++$v; } print_r($arr);