流程控制
流程控制:代码执行的方向
控制的分类
- 顺序结构:代码从上往下,顺序执行。(代码执行的最基本的结构);
- 分支结构:给定一个条件,同时有多种可执行代码(块),然后会根据条件执行某一段代码;
- 循环结构:在某个条件控制范围内,指定的代码(块)可以重复执行。
顺序结构
顺序结构:最基本结构,所有代码默认都是从上往下依次执行
分支结构
在php中,分支结构主要有两种:if分支和switch分支。
if分支
if:如果的意思,给定一个条件,同时为该条件设置多种(两种)去情况,然后通过条件判断来实现具体的执行段
基本语法:if分支php也提供多种方式来实现
最简if:只有一段代码,但是可以选择是否执行
if(条件表达式){
//满足条件所要的内容; //顺序结构
}
基础if:有两面性,满足条件或者不满足条件都有对应的执行代码
if(条件表达式){
//满足条件后执行的代码段
}else{
//不满足条件后执行的代码段
}
复杂if结构:在判断条件之后,通常就有两种结果:满足或者不满足,在不满足之后还可以再次进行条件判断
if(条件表达式1){
//条件表达式1的代码段;
}elseif(条件表达式2){
//不满足表达式1条件,但是满足表达式2的代码;
}...//可以使用多个elseif来进行再次条件筛选
Else{
//全部不满足要执行的代码
}
代码演示
<?php
//最简if
$day = 'weekenday';
//如果是星期天就出去玩
if ($day == 'sunday') {
echo 'go out';
}
//最基本if判断
//如果是星期天就出去玩,否则上班
if ($day == 'sunday') {
echo 'go out play';
} else {
//不满足条件
echo 'work';
}
//复合if结构
//如果是星期天就出去玩,否则不能,但是如果是周六,那么可以在家玩
if ($day == 'sunday') {
echo 'go out';
} else {
//包含全部不满足情况
//重新进行判断
if ($day == 'satday') {
echo 'play at home';
} else {
echo 'work';
}
}
echo '<hr>';
if ($day == 'sunday') {
echo 'go out';
} elseif ($day == 'satday') {
echo 'play at home';
} else {
echo 'work';
}
?>
注意:如果条件特别多才会采用复合if形式
- 如果条件比较单一(同一个条件),会采用elseif复合方式
- 如果判断条件不一致,建议使用嵌套语法(不宜有太多层嵌套:影响代码美观)
if分支,适用于所有的条件判断(分支结构)
switch分支
switch分支:有一组情形存在,同过条件,通常有多个值,但是每个值都会有对应不同的代码要执行。
switch判断方式:是将条件放到分支结构内部判断
switch基本语法:
switch (条件表达式) {
//所有条件判断:逐个进行
case 值1: //当前条件表达式的结果与值1相等(==)
要执行的代码段;
break; //在switch中,如果条件匹配成功,那么系统就不会再次匹配条件,会自动顺序执行向下的所有代码(case代码除外),需要终止执行:break表示终止执行switch(结束)
case 值2:
要执行的代码段;
break;
....
//可以使用类似else的语法:都不比配
default:
//匹配失败的代码;
break;
}
代码演示
<?php
//分支结构:switch语句
//根据日期做不同的事情
$day = 7;
//从1到5做不同的事情
switch ($day){
case 1:
echo 1;
break;
case 2:
echo 2;
break;
case 3:
echo 3;
break;
case 4:
echo 4;
break;
case 5:
echo 5;
break;
default:
echo '今天是周六日';
break;
}
if和switch的选择
- if能够做所有的分支结构的事情
- switch处理的是条件比较多,同时比较单一,而且是固定值比配的分支结构。