PHP开发基础教程之循环语句
一、PHP循环
在我们编写代码时,经常需要让相同的代码块一次又一次地重复运行。这时候我们就可以在代码中使用循环语句来完成这个任务。
在 PHP 中,提供了下列循环语句:
while - 只要指定的条件成立,则循环执行代码块
do...while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
for - 循环执行代码块指定的次数
foreach - 根据数组中每个元素来循环代码块
二、while循环
while 循环将重复执行代码块,直到指定的条件不成立
语法:
while (条件)
{
要执行的代码;
}
我们来通过一个代码逻辑图,认识一下while循环
首先判断条件是否满足,满足的话,一直执行大括号里面的代码,直到条件不满足时,跳出
实例1循环输出1到50内的整数:源代码如下
<?php $i=1; while($i<=50){ echo $i." "; $i++; } ?>
实例2:输出一个1到100的表格,实现隔行变色功能
首先输出整个表格:源码如下
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <?php //定义循环的初始值 $i=0; //输出表格 echo '<table width="800" border="1" >';//双引号外面要套单引号,双引号会报错 while($i<100){ //0 - 9 为一行 //10 -19 为一行 //因此,每一行的开始都能够被10求余后为零,如为10的时候,应该显示行开始的标签 if($i%10==0){ //为了隔行变色,第2,4,6每行的颜色变过色的,因此我们又可以再进行一次取余运算 if($i%20==0){ //第1,3,5等行正常输出 echo "<tr>"; }else{ //第2,4,6等行正常输出 echo '<tr bgcolor="pink">';//双引号外面要套单引号,双引号会报错 } } echo "<td>"; echo $i; echo "</td>"; $i++; //同理,每一行结束是不是应该有一个</tr>结束标签呢? if($i%10==0){ echo "</tr>"; } } echo "</table>"; ?> </body> </html>
注:表格部分只是请参考HTML课程的相关部分
注:语句里面,双引号里面要套单引号,单引号里面套双引号
三、do...while循环
语法:do
{
要执行的代码;
}
while (条件);
l do...while 语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环
l do...while与while的区别是,它们的值的检查时机不同。
l do-while 不论while判断是否成立,先执行一次代码代码块循环语句,保证会执行一次(表达式的真值在每次循环结束后检查)。
然而我们之前的while循环会检查布尔判断区域,成立则执行。不成立则不执行。
<?php $i = 0; do { echo $i; } while ($i > 0); ?>
上面代码中,$i 肯定不大于0,也执行了。
当然,你还不能理解,实在想不到应用场景也没关系,可以完全跳过此块。
do...while用的情况比较少。我们有可能用在资源处理如:文件打开等地方。
四、for 循环控制语句
for 循环用于预先知道脚本需要运行的次数的情况
语法:
for (初始值; 条件; 增量)
{
要执行的代码;
}
参数:
初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。
条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。
增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。
注:上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)
实例:用for循环来输出1-100。源码如下
<?php for($i=1;$i<=50;$i++){ echo $i." "; } ?>
实例:用for循环来打一下9*9的乘法口诀表吧
<?php //99乘法口诀表从1开始,所以声明一个变量$i = 1,让$i小于10,也就是最大值为9 for($i=1;$i<=9;$i++){ //1x1=1,2x2等于4,所以第二次循环的最大值为$i的值,因此$j=1, $j在循环自加的过程当中,只能够小于等于$i for($j=1;$j<=$i;$j++){ echo $i."x".$j."=".$i*$j.' '; } //每行结束输出一个换行 echo "<br/>"; } ?>
注:在代码中是横着输出的,换行符在每一个内部的for循环结束后执行一次
我们来补充一下几个跳出的异同吧
语句 | 作用 |
exit | exit之前我们讲过了,从当前处停止后续执行 |
break | 之前遇到过,跳出循环或者跳出结构体执行后续代码 |
continue | 跳出此次循环,下次循环继续 |
来看个例子,源码如下:
<?php for ($i = 1; $i <= 10; $i++) { if($i == 4){ //待会儿换成contiune试试 break; } echo '学习PHP的第'.$i.'天,加油<br />'; } ?>
将break换成continue,查看结果试试:(第4行丢失,其他行正常输出)
五、foreach循环(此处数组还没有介绍,可以看完数组的介绍之后再学习本章)
foreach 循环用于遍历数组
语法为:
foreach ($array as $value)
{
要执行代码;
}
每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值
实例:源代码如下
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> <body> <?php $x=array(1,2,3,4); foreach ($x as $value) { echo $value . "<br>"; } ?> </body> </html>