法,第二种比较次要但却是第一种的有用 的扩展。 copy to clipboard foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement 第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被 赋给 $value 并且数组内部的指针向前移一步 (因此下一次循环中将会得到下一 个单元)。 第二种格式做同样的事,只除了当前单元的键名也会在每次循环
中被赋给变量 $key。
自 PHP 5 起,还可能遍历对象。 注意: 注意: 当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不 需要在 foreach 循环之前调用 reset() reset()。 注意: 注意: 除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本 身。 因此数组指针不会被 each() 结构改变, 对返回的数组单元的修改也不会影 响原数组。不过原数组的内部指针的确在处理数组的过程中向前移动了。假定 foreach 循环运行到结束,原数组的内部指针将指向数组的结尾。 自 PHP 5 起,可以很容易地通过在 $value 之前加上 &; 来修改数组的单元。此 方法将以引用赋值而不是拷贝一个值。 copy to clipboard 此方法仅在被遍历的数组可以被引用时才可用(例如是个变量)。 注意: 注意: foreach 不支持用“@”来抑制错误信息的能力。 用户可能注意到了以下的代码功能完全相同: copy to clipboard \n";0 } foreach ($arr as $value) { echo "Value: $value
\n";
} ?> 以下代码功能也完全相同: copy to clipboard \n"; } foreach ($arr as $key => $value) { echo "Key: $key; Value: $value
\n"; } ?> 示范用法的更多例子: copy to clipboard