| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 966 人关注过本帖
标题:询问
只看楼主 加入收藏
黑七指王
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2005-12-26
收藏
 问题点数:0 回复次数:4 
询问

在php中的流程控制语法foreach的作用是什么以及用法是怎样的,
请各位帮忙啊,我真的看不懂材料!

搜索更多相关主题的帖子: 询问 流程 php foreach 语法 
2005-12-29 10:58
wleige
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-10-10
收藏
得分:0 
PHP 4包括了 foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。
foreach (array_expression as $value) statement
foreach (array_expression as $key => $value) statement

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

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

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

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

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

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

<?php
$arr = array("one", "two", "three");
reset ($arr);
while (list(, $value) = each ($arr)) {
echo "Value: $value<br>\n";
}

foreach ($arr as $value) {
echo "Value: $value<br>\n";
}
?>


以下代码功能也完全相同:


<?php
reset ($arr);
while (list($key, $value) = each ($arr)) {
echo "Key: $key; Value: $value<br>\n";
}

foreach ($arr as $key => $value) {
echo "Key: $key; Value: $value<br>\n";
}
?>
示范用法的更多例子:

<?php
/* 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 "$v2\n";
}
}

/* foreach example 5: dynamic arrays */

foreach (array(1, 2, 3, 4, 5) as $v) {
print "$v\n";
}
?>

我一直以为隐身了别人就找不到我了!没有用的!象我这样拉风的男人,无论在什么地方,都像漆黑中的萤火虫一样,那样的鲜明,那样的出众!我那忧郁的眼神,稀嘘的胡喳子,神乎其神的刀法,还有那杯drymartine,都深深地出卖了我......
2005-12-29 11:12
黑七指王
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2005-12-26
收藏
得分:0 
我知道你发的是php手册上的,我就是因为看不懂手册,才问的啊!
能给我将的简单点吗?
很简单的开始啊,我现在接受不了,这么多代码啊!

我是一个菜鸟,但是一个很优秀,很努力的菜鸟!!!!! www.qrjb.
2005-12-29 11:15
wleige
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-10-10
收藏
得分:0 
兄弟,上面说的很清楚呀,哪一点不会,可以提出来,如果让我给你讲解.我也不知道从哪里入手,最好的办法就是看例子.有什么不明白提出来

我一直以为隐身了别人就找不到我了!没有用的!象我这样拉风的男人,无论在什么地方,都像漆黑中的萤火虫一样,那样的鲜明,那样的出众!我那忧郁的眼神,稀嘘的胡喳子,神乎其神的刀法,还有那杯drymartine,都深深地出卖了我......
2005-12-29 11:41
wangshaobo
Rank: 2
等 级:新手上路
威 望:3
帖 子:81
专家分:0
注 册:2005-11-28
收藏
得分:0 
对呀,还是先学点儿基础性的东西吧,有些东西是要靠自己动手实践的,光靠别人讲是学不到东西的。应该学会自己看手册

让我们在交流中成长
2005-12-29 14:18
快速回复:询问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031181 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved