php for 循环语句使用方法详细说明


for循环只是一个多一点的代码,同时循环添加到它。而所涉及的一个循环的共同任务是:

设置一些计数器变量的初始值。
请检查条件语句是正确的。
执行中的代码循环。
增量在每个迭代结束通过循环计数器。
for循环允许你定义一个简单的代码行这些步骤。它似乎有一种奇怪的形式,所以一定要密切注意语法用!

for 循环的语法是:

for (expr1; expr2; expr3)
statement

第一个表达式(expr1)在循环开始前无条件求值一次。

expr2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。

expr3 在每次循环之后被求值(执行)。

每个表达式都可以为空或包括逗号分隔的多个表达式。表达式 expr2 中,所有用逗号分隔的表达式都会计算,但只取最后一个结果。expr2 为空意味着将无限循环下去(和 C 一样,PHP 认为其值为 TRUE)。这可能不像想象中那样没有用,因为经常会希望用 break 语句来结束循环而不是用 for 的表达式真值判断。


看简单实例一

复制代码 代码如下:

FOR ($i = 0; $i <= 2; $i++)
{
print "value is now " . $i . "<br>";
}

输出值

value is now 0
value is now 1
value is now 2

在第一循环,$i=0,这意味着表达,($i<= 2),为ture。因此,打印语句执行时,$i得到加1,变成1。

在第二循环,$ = 1,这意味着表达,($i<= 2),为ture。因此,打印语句执行时,$i得到加1,变成2。

在第三迭代,$i= 2,这意味着表达,($i<= 2),为ture。因此,打印语句执行时,$i递增,成为1 3。

在第四迭代,$i= 3,这意味着表达,($i<= 2),是假的。因此,PHP不去执行循环,不执行打印语句。

实例二
复制代码 代码如下:

$brush_price = 5;

echo "<table border="1" align="center">";
echo "<tr><th>Quantity</th>";
echo "<th>Price</th></tr>";
for ( $counter = 10; $counter <= 100; $counter += 10) {
echo "<tr><td>";
echo $counter;
echo "</td><td>";
echo $brush_price * $counter;
echo "</td></tr>";
}
echo "</table>";

输出值

Quantity Price
10 50
20 100
30 150
40 200
50 250
60 300
70 350
80 400
90 450
100 500

可以参考以下的例子,它们都显示数字 1 到 10:
复制代码 代码如下:

<?php
/* example 1 */

for ($i = 1; $i <= 10; $i++) {
echo $i;
}

/* example 2 */

for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
echo $i;
}

/* example 3 */

$i = 1;
for (;;) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}

/* example 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>

当然,第一个例子看上去最正常(或者第四个),但用户可能会发现在 for 循环中用空的表达式在很多场合下会很方便。

PHP 也支持用冒号的 for 循环的替代语法。
复制代码 代码如下:

for (expr1; expr2; expr3):
statement;
...
endfor;

我们经常需要对下面这样的数组进行遍历:

复制代码 代码如下:

<?php
/*
* 我们想要在遍历的过程中改变以下数组中某些元素的值
*/
$people = Array(
Array('name' => 'Kalle', 'salt' => 856412),
Array('name' => 'Pierre', 'salt' => 215863)
);

for($i = 0; $i < sizeof($people); ++$i)
{
$people[$i]['salt'] = rand(000000, 999999);
}
?>

以上代码的问题,在于for的第二个表达式会导致代码执行很慢--因为每次循环时都要 计算一遍数组的长度。由于数组的长度始终不变,我们可以用一个中间变量来存储数组长度, 然后用这个变量作为for循环的第二个表达式。这样在循环的时候就可以直接使用该变量的值, 不用每次重新计算。 如下:

复制代码 代码如下:

<?php
$people = Array(
Array('name' => 'Kalle', 'salt' => 856412),
Array('name' => 'Pierre', 'salt' => 215863)
);

for($i = 0, $size = sizeof($people); $i < $size; ++$i)
{
$people[$i]['salt'] = rand(000000, 999999);
}
?>



相关阅读:
CSS3教程(2):网页边框半径和网页圆角
用Access将XLS与MDB文件格式互相转换
Adobe加入Linux基金会 发布Linux版AIR技术框架
Mootools 1.2教程 输入过滤第一部分(数字)
正确地利用css改进网站设计的3个技巧
php读取mysql乱码,用set names XXX解决的原理分享
深入对iis写权限的利用
一步一步学习PHP(1) php开发环境配置
ASP.NET性能优化之减少请求
asp.net下配置数据源时出现: 未将对象引用设置到对象的实例。
关于要不要关闭Vista中的IPv6功能的问题
FreeBSD下配置IPSec:WinXP------FreeBSD
CSS技巧:IE6用import导入CSS的问题
javascript 关键字高亮显示实现代码
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 花仙子的传说作文1200字 假温柔的伤感空间日志发布:我只是你生命中的一个过客罢了·· 关于我的同桌作文800字 智慧和人品 2016省级示范镇建设情况汇报 如何才能站得住脚的生存之道之《示孬些》 教育局长竞选演讲稿 稻谷 加强再就业税收优惠管理的认识 回忆.家乡风物 美术设计专业毕业生实习鉴定 宾馆房务部服务员演讲稿:我爱这平凡的岗位 羊年祝福贺词大全 农村青年信用示范户试点工作情况汇报 生命中那一抹绿意 《大灰狼罗克》(四) 励志人物简介:马云 附属中学行风评议自查报告 散文:我最美的年华,谁和我一起度过 最新QQ伤感日志发布:你不该,不相信我 年幼的我作文500字 关于热爱家乡的作文(3篇) 贝多芬的启示作文600字 幸福的黄桷树 小学高年级作文教学法 2016年优秀教师事迹材料 演讲的本质和作用 总有我的季节作文1200字 男人如果爱你 那你就一定会感觉得到 八荣八耻心得体会(联系党风廉政建设) 鼾声也是一种动听的交响乐 我家的美男子600字 梦中的糖果 述职报告(办公室主任) 2017年元旦作文150字 秋斋独坐寄乐天兼呈吴方之大夫 200字迎接2016年作文:踏着轻盈的步伐迎接2016 记忆菖蒲 去沙县吃沙县小吃 作文400字 随缘 小学六年级作文800字:武松打虎新传 2015年春班级保教常规评估活动方案 人不成功的终极原因 我发现了蚂蚁的秘密500字 形容男人丑的句子 你长得好有西餐味喔 华蓥山学校赋 《阴沟》 美丽的大理 节能减排年终优秀工作总结范文 周华健励志歌曲推荐:《风雨无阻》

Copyright © 2016 phpStudy |