首页 » 建站技术 » PHP 技术 » 浏览内容

foreach 仅能用于数组


2005-05-31 08:39:18 3,870 0 发表评论 字体: 作者:C.K.

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

foreach

PHP 4(不是 PHP 3)包括了 foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误有两种语法,第二种比较次要但却是第一种的有用的扩展

foreach (array_expression as $value) statementforeach (array_expression as $key => $value) statement

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

第二种格式做同样的事,只除了当前单元的键值也会在每次循环中被赋给变量 $key。

注: 当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。

注: 此外注意 foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。因此即使有 each()的构造,原数组指针也没有变,数组单元的值也不受影响。

注: foreach 不支持用“@”来禁止错误信息的能力。

你可能注意到了以下的代码功能完全相同:

$arr = array("one", "two", "three");
  • reset ($arr);
  • while (list(, $value) = each ($arr)) {
  •    echo "Value: $value
  • n";
  • }
  • foreach ($arr as $value) {
  •    echo "Value: $value
  • n";
  • }
  • ?>
  • 以下代码功能也完全相同:

    reset ($arr);
  • while (list($key, $value) = each ($arr)) {
  •    echo "Key: $key; Value: $value
  • n";
  • }
  • foreach ($arr as $key => $value) {
  •    echo "Key: $key; Value: $value
  • n";
  • }
  • ?>  
  • 示范用法的更多例子:
  • /* foreach example 1: value only */
  • $a = array (1, 2, 3, 17);
  • foreach ($a as $v) {
  •   print "Current value of $a: $v.n";
  • }
  • /* foreach example 2: value (with key printed for illustration) */
  • $a = array (1, 2, 3, 17);
  • $i = 0; /* for illustrative purposes only */
  • foreach ($a as $v) {
  •    print "$a[$i] => $v.n";
  •    $i++;
  • }
  • /* foreach example 3: key and value */
  • $a = array (
  •    "one" => 1,
  •    "two" => 2,
  •    "three" => 3,
  •    "seventeen" => 17
  • );
  • foreach ($a as $k => $v) {
  •    print "$a[$k] => $v.n";
  • }
  • /* foreach example 4: multi-dimensional arrays */
  • $a[0][0] = "a";
  • $a[0][1] = "b";
  • $a[1][0] = "y";
  • $a[1][1] = "z";
  • foreach ($a as $v1) {
  •    foreach ($v1 as $v2) {
  •        print "$v2n";
  •    }
  • }
  • /* foreach example 5: dynamic arrays */
  • foreach (array(1, 2, 3, 4, 5) as $v) {
  •    print "$vn";
  • }
  • ?>

    网站统计 Statistics

    • 创建时间: 2005年1月3日 距今5062 天
    • 日志总数: 2461
    • 评论总数: 630
    • 标签总数: 654
    • 链接总数: 273
    • 最后更新: 2018-8-31 17:57:04
    • 您是本站第 14144302 位访客

    广告区 Guǎng Gào