首页  >  文章  >  后端开发  >  php for循环语句语法介绍及使用实例

php for循环语句语法介绍及使用实例

伊谢尔伦
伊谢尔伦原创
2017-06-23 09:53:512510浏览

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

1. 设置一些计数器变量的初始值。
2. 请检查条件语句是正确的。
3. 执行中的代码循环。
4. 增量在每个迭代结束通过循环计数器。
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(&#39;name&#39; => &#39;Kalle&#39;, &#39;salt&#39; => 856412), 
Array(&#39;name&#39; => &#39;Pierre&#39;, &#39;salt&#39; => 215863) 
); 
for($i = 0; $i < sizeof($people); ++$i) 
{ 
$people[$i][&#39;salt&#39;] = rand(000000, 999999); 
} 
?>

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

<?php 
$people = Array( 
Array(&#39;name&#39; => &#39;Kalle&#39;, &#39;salt&#39; => 856412), 
Array(&#39;name&#39; => &#39;Pierre&#39;, &#39;salt&#39; => 215863) 
); 
for($i = 0, $size = sizeof($people); $i < $size; ++$i) 
{ 
$people[$i][&#39;salt&#39;] = rand(000000, 999999); 
} 
?>


以上是php for循环语句语法介绍及使用实例的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn