PHP学习之基本语法
流程控制
对PHP程序执行的过程进行控制
一、顺序执行
顺序执行就是简单的从上往下执行即可,对程序执行过程没有控制
<?php
echo '执行到第1步了';
echo '执行到第2步了';
echo '执行到第3步了';
echo '执行到第4步了';
二、分支执行
顺序执行虽然能解决计算,输出等问题,但是执行太过死板,无法完全满足我们实际的开发需要,所以我们需要引入分支执行。分支执行可以根据条件是否满足来选择执行某些代码
1.if语句
1).单向条件:
if(表达式)
语句块1;
表达式的值为true就执行语句,否则不执行
注:通过复合语句(代码块),if语句可以控制执行多条语句。代码块是用—对花括号括起来的多条语句。
例:
$pass=60;
$a=40;
if($a>=$pass){
echo '恭喜通过考试';
//.....其他语句
}
2).双向条件:
if(表达式1)
语句块1;
else
语句块2;
表达式1的值为true执行语句1,否则执行语句2
注:我们if语句的表达式所控制的代码,最好用花括号括起来,哪怕就是一条语句也用花括号括起来
$pass=60;
$a=40;
if($a>$pass){
echo '通过考试';
//其他语句
}else{
echo '没有通过考试';
//其他语句
}
3).多向条件
if(表达式1)
语句块1;
else if(表达式2)
语句块2;
······
else if(表达式n)
语句块n;
else
语句块;
$a=91;
$grade1=60;
$grade2=70;
$grade3=80;
$geade4=90;
if($a<$grade1){
echo '不及格';
//其他语句
}else if($a<$grade2){
echo '及格';
//其他语句
}else if($a<$grade3){
echo '良好';
//其他语句
}else if($a<$grade4){
echo '好';
//其他语句
}else{
echo '优秀';
//其他语句
}
2.switch语句
switch(表达式){
case值1://case相当于==
语句1;
break;
case值2:
语句2;
break;
·······
default:
语句n;
}
列:
<?php
$a=2;
switch ($a){
case 1://case相当于==
echo '今天星期一<br />';
break;
case 2:
echo '今天星期二<br />';
break;
case 3:
echo '今天星期三<br />';
break;
case 4:
echo '今天星期四<br />';
break;//跳出,打断的意思!
case 5:
echo '今天星期五<br />';
break;
case 6:
echo '今天星期六<br />';
break;
case 7:
echo '今天星期日<br />';
break;
default:
echo '数字没匹配上,不知道今天是星期几!<br />';
}
echo '执行完毕!';
三、循环语句
计算机最擅长的功能之一就是按照规定的条件,重复执行某些操作,这是程序设计中最能发挥计算机特长的程序结构。
1.while语句
while(表达式){
语句块
}
当表达式的值为true,那么就执行下面的语句块,当语句块执行结束之后,继续返回上面来判断表达式的值是true还是false,如果还是true,那么就继续执行语句块,直到,这个表达式的值为false,那么这个while语句就执行结束了!
$i=0;
while($i<10){
echo $i++.'<br />';
}
echo '执行结束了!';
2.do…while语句
do{
语句块
}while(表达式);
因为是先进入语句,在进行判断,所以do while语句至少会执行一次
<?php
$i=10;
do{
echo $i++.'<br />';
}while($i<10);
echo '......';
?>
3.for语句
for(表达式1;表达式2;表达式3){
语句块
}
表达式a:会放一些初始化话的语句,比如$i=0,可以放多个表达式,中间用
,
隔开
表达式b:会放一些用来判断true或者false的表达式,可以放多个表达式,中间用,
隔开
表达c:会放一些对初始化的变量进行自增的语句,可以放多个表达式,中间用,
隔开
<?php
//for循环
for($i=0;$i<10;$i++){
echo "执行到第{$i}遍了<br />";//这里变量用花括号括起来
}
?>
<?php
//for循环-稍复杂,一般用的不是太多!
for($i=0,$j=0;$i<10;$i++,$j++){
echo "{$j}执行到第{$i}遍了<br />";
}
?>
四、特殊的流程控制语句
1.break语句
作用:用于switch语句,for,while,do…while,foreach,用于中断这些语句, 后面可以接上一个数字来表示跳出几层循环,默认不加就是跳出当前循环语句
<?php
for ($i=0;$i<10;$i++){
if($i==5){
break;//中断当在所在循环语句!后面的数字表示跳出几层!
}
echo "执行到第{$i}遍!<br />";
}
<?php
for ($i=0;$i<10;$i++){
echo "执行到第{$i}遍!<br />";
for ($j=0;$j<10;$j++){
if($j==5){
break 2;//跳出2层循环语句!
}
echo "--执行到第{$j}遍了!<br />";
}
}
echo '执行结束!';
?>
2.continue语句
作用:只能用在循环语句,跳出本次循环,并不是结束整个循环语句
for ($i=0;$i<10;$i++){
if($i==5){
continue;//跳出本次循环!并不是中断,结束整个循环语句!
}
echo "执行到第{$i}遍!<br />";
}
echo '执行结束!';
?>
3.exit()语句
作用:结束当前整个程序的执行,后面的语句不再执行
<?php
echo '执行到第1步了<br />';
echo '执行到第2步了<br />';
exit();//后面的程序不再执行
echo '执行到第3步了<br />';
echo '执行到第4步了<br />';
?>