PHP流程控制
一、概念
- 流程控制包括三个部分,顺序结构(程序自上而下的一个执行过程),分支结构(根据某一条件将程序转向不同的分支处执行)和循环结构(计算机最大特点就是计算速度快,解决重复性的问题)
二、分支结构
-
if分支
①单分支:if(表达式){语句体}
<?php header('Content-type:text/html;charset=utf-8');//防止在不同浏览器出现乱码bug $num=1; if($num==1){ echo '输入的是1'; } if($num==2){ echo '输入的是2'; } //说明,当表达式成立的时候,执行语句,如果不成立直接结束if结构,继续其后的语句执行 ?>
②双分支:if(表达式A){语句体} else if(表达式B){语句体}
<?php //说明,当表达式A成立的时,执行A的语句体,如果不成立来判断条件B,当任何一个语句体结束后,不再会去进行其他表达式的判断 header('Content-type:text/html;charset=utf-8');//防止在不同浏览器出现乱码bug $num=1; if($num==1){ echo '输入的是1'; }else if($num==2){ echo '输入的是2'; } //这种方法比单分支效率增加了,但是当数据不合法时,应该给出适当的提示 ?>
③多分支:if(表达式A){语句体} else if (表达式B){语句体} else if (表达式){ 语句体} else {语句体}
<?php header('Content-type:text/html;charset=utf-8');//防止在不同浏览器出现乱码bug $num=1; if($num==1){ echo '输入的是1'; }else if($num==2){ echo '输入的是2'; }else if($num==3){ echo '输入的是3'; }else{ echo '输入的数据不合法'; } ?>
<?php header('Content-type:text/html;charset=utf-8');//防止在不同浏览器出现乱码bug $num=1; if($num==1) echo '输入的是1'; else if($num==2) echo '输入的是2'; else if($num==3) echo '输入的是3'; else echo '输入的数据不合法'; //注意:如果语句体只有一条语句,此语句体的{}号可以省略 ?>
-
switch分支
①语法
switch(变量){
case 值1:语句体1 break;
case 值2:语句体1 break;
case 值3:语句体1 break;
.........
default:缺省语句体
}
<?php header('Content-type:text/html;charset=utf-8');//防止在不同浏览器出现乱码bug $day=3; switch($day){ case 1:echo '星期一';break; case 2:echo '星期二';break; case 3:echo '星期三';break; case 4:echo '星期四';break; case 5:echo '星期五';break; case 6:echo '星期六';break; case 7:echo '星期日';break; default:echo '数据不合法'; } ?>
②与if分支的区别:if分支可以表示一个范围,switch主要用于表示某个具体的值
三、循环结构
-
for循环
①语法:for(循环控制变量初始化;表达式;循环控制变量更改){ 循环体 }
②案例:输出表格
<?php $tab="<table border='1' rules='all' width='100' height='100'>"; //外层循环控制行 for($j=1;$j<=10;$j++){ $tab.="<tr>"; //内层循环控制列 for($i=1;$i<=$j;$i++){ $tab.="<td>数据</td>"; } $tab.="</tr>"; } $tab.="</table>"; echo $tab; ?>
-
while循环
①语法:while(表达式){循环体}-------也应该包括循环的三要素
<?php //说明:不成立,直接结束循环结构,继续其后的语句执行,成立,执行循环体,循环体执行结束后再来判断条件,直到条件不成立,退出循环结构 $i=1; while($i<=10){ echo $i,'<br>'; $i++; } ?>
②与for循环的区别:for循环主要用于循环次数已知或者根据某一条件可以确定,while循环用于循环次数未知的循环
-
do while循环
①语句:do{ 循环体 } while (表达式)
<?php //说明:执行循环体-->判断条件---->成立则退出,不成立继续执行循环体--->判断条件---->..... $i=1; do{ echo $i,'<br>'; $i++; }while($i<=10); ?>
②与while循环的区别:至少会执行循环体一次
四、循环的结束和退出
-
continue
①语法:continue【n】
②说明:n的取值是一个整数,如果省略默认是1,n主要用在循环嵌套情况下,结束当前的循环结构的循环,继续上n层循环结构的下一次循环
-
break
①语法:break【n】
②说明:n的取值是一个整数,如果省略默认是1,n主要用在循环嵌套情况下,直接结束上n次循环的循环结构
五、流程控制语句的标签语法(php代码嵌入到HTML文档)
-
if的标签语法
①标准版:<?php if(......) : ?> ................................<?php endif ?>
②简化版:<?php if(......) {?> ................................<?php } ?>
-
for的标签语法
①标准版:<?php for(......) : ?> ................................<?php endfor ?>
②简化版:<?php if(......) {?> ................................<?php } ?>
-
while的标签语法
①标准版:<?php while(......) : ?> ................................<?php endwhile ?>
②简化版:<?php while(......) {?> ................................<?php } ?>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php //模拟从数据库得到的数据 $data=[ [201810,'xiaomi','MI5',1999], [201811,'xiaomi','MI6',2499], [201812,'xiaomi','MI8',2999], [201813,'xiaomi','note3',2199] ]; ?>
<table border='1' rules='all'> <thead> <tr> <td>订单号</td> <td>品牌</td> <td>商品名</td> <td>价格</td> </tr> </thead> <tbody> <?php for($i=0;$i<4;$i++){?> <tr> <td><?php echo $data[$i][0]?></td> <td><?php echo $data[$i][1]?></td> <td><?php echo $data[$i][2]?></td> <td><?php echo $data[$i][3]?></td> </tr> <?php }?>//注意,前面一定要有空格,不然会报错 </tbody> </table> </body> </html>