foreach ($name as $key => $value) {
$value .= '121';
var_dump($value);
echo "<br>";
# code...
}
var_dump($name);
上面是foreach的两种表达方法
运用foreach应该注意的地方
1.修改$value的值不会改变原数组的值
foreach ($name as $key => $value) {
$value .= '121';
var_dump($value);
echo "<br>";
# code...
}
var_dump($name);
这样在内部改变值不会改变数组的值,这也证明了这是按值传递的
2.也是支持按引用传递的
foreach ($name as $key => & $value) {
$value .= '121';
var_dump($value);
echo "<br>";
# code...
}
var_dump($name);
这样做就改变了原数组的值,
键变量不能进行按引用转递,这样会报错
3.这一点很重要而且以前没接触过:
foreach遍历的是原数组的拷贝,而不是在原数组上做的操作
这样操作的是数组的拷贝,对原变量进行改动,是无法影响遍历结果的;
foreach ($name as $key => $value) {
$value .= '121';
var_dump($value);
echo "<br>";
$name[] = "New element";
# code...
}
var_dump($name);
4.foreach也是循环结构,break,continue也是有用的、
在PHP中foreach是专门为了遍历数组做优化的,所以遍历数组会很快,遍历数组时尽量使用foreach