php for 循环语句使用方法详细说明
发布时间:2023-11-17 21:43:21
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);
}
?>
猜你喜欢
- 利用oracle的dbms_random包结合rownum来实现,示例如下,随机取499户:select * from ( select *
- 首先使用内置模块os.>>> import os>>> code = os.system("p
- 刚刚登甲发来一个文章,看到只要一行代码,就可以把IE6弄死.<style>*{position:relative}&
- 一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时
- 一,利用键盘响应,在不刷新本页面的情况下验证表单输入是否合法用户通过onkeydown和onkeyup事件来触发响应事件。使用方法和oncl
- 常见的SQL问题:◆选择重复,消除重复和选择出序列有例表:empemp_no name age001 Tom 17002 Sun 14003
- 在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗的解决方法分享。<div id='tes
- 最近遇到SQL Server 2005 输入框不能输入中文,在网上查了N久,试验了十几次奏这个法子有用:“把你表中的自动编号列放到最后面”。
- SQL Server管理,你做得好吗?下文这些可能会对你的工作有一些帮助,不妨耐心的看看吧。1. 数据库文件有.mdf .ndf .ldf三
- 使用xmlhttp中的getResponseHeader 从响应信息中获取指定的http头strValue = oXML
- Knockout是一个以数据模型(data model)为基础的能够帮助你创建富文本,响应显示和编辑用户界面的JavaScript类库。任何
- 为了能让PHP连接MSSQL,系统需要安装MSSQL,PHP,且在PHP.ini中的配置中,将 ;extension=
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&
- 三、支持XML的公司和它们的开发工具 尽管XML还处在开发阶段,其标准正在由W3C组织制定,但是已经有许多公司表示全力支持XML,并开发了不
- 首先在我们进行信息系统的开发的时候,数据库的应用必不可少,对于一个企业级别的数据库应用很少是只使用一块磁盘的,很多都是使用RAID磁盘阵列,
- 对于值传递和引用传递,书本上的解释比较繁琐,而php面试中总会出现,下面我会通过一个生活的例子带大家理解它们之间区别。第一步假设我们去酒店订
- 全球数据量的疯狂增长,使得市场对资深数据库管理员的需求也节节攀升。据统计,一直到2016美国IT市场对数据库管理员的需求量增长都将会超过所有
- 为庆祝jQuery的四周年生日,jQuery官方团队正式发布了jQuery 1.4版本。在这个版本中,jQuery官方团队做了大量的编码、测
- 上文:栅格:一以贯之Jacci Howard Bear 的英文原文:http://desktoppub.about.com/od/grids
- 英文原文:The seven rules of Unobtrusive JavaScript原文地址:http://icant.co.uk/