一、PHP流程控制语句
流程控制对于任何一门语言来说,都是至关重要的,
在编写程序时,我们经常会希望为不同的决定执行不同的动作,这时就可以使用流程控制语句来实现:
影响用户的输入为不同的决定或者输入执行不同的程序
(一)顺序结构
顺序结构是最基本的结构方式,各流程依次按顺序执行
顺序结构中,所有代码都将执行一次
PHP中,顺序结构的语句一般是一些赋值语句、输出语句等
(二)分支结构
选择结构就是对给定条件进行判断,条件为真是执行一个分支,条件为假时执行另一个分支.
根据条件执行结果改变程序执行顺序
1.单路分支
成立执行,不成立继续往下走
if(条件){
条件成立则执行;
}
if(条件){
执行代码段;
}
2.双路分支
if(条件){
条件成立则执行;
}else{
不成立执行;
}
3.多路分支
互斥结构,只要进入一个就不会进入其他的分支
if(条件){
条件成立则执行;
}elseif(条件){
条件成立则执行;
}else{
不成立执行;
}
switch(表达式或者变量) //适用于整数和字符串
{
case label1:
代码块;
break;
case label2:
代码块;
break;
case label3:
代码块;
break;
break;
default:
代码块
}
执行原理:
将表达式进行计算,与case中的值进行比较,如果与case中的值相等,则执行当前case后的代码块,如果不相等,进行下一个比较,否则就用默认的代码块default,break用于执行完代码块后跳出程序执行,避免进行下一个case中;
如果判断一个范围使用if else ,如果是单个值匹配,使用switch case;
4.嵌套分支
if(){
If(){
}else{
If(){
}
}
}else{
If(){
}else{
switch(){
}
}
}
<?php $sex = $_GET['sex']; $age = $_GET['age']; if($sex=='nan'){ if($age>=60){ echo "这个男士已经退休了".($age-60)."年了"; }else{ echo "这个男士还在工作,还有".(60-$age)."年才退休"; } }else{ if($age>=55){ echo "这个女士已经退休了".($age-55)."年了"; }else{ echo "这个女士还在工作,还有".(55-$age)."年才退休
"; } } ?>
二、PHP流程控制之循环结构
循环结构
计算机最擅长的事情是自动的重复的执行任务,如果某些任务需要以相同的方式多次执行,就可以用到循环语句来重复程序里的某些部分.php中最简单的就是while循环,
(一)while循环
只要指定条件为真,就执行循环语句 设定一个布尔型条件,只要条件为真就反复执行代码段
只要条件为真,就执行循环语句
while(条件){
条件为真执行的代码; //反复执行,直到条件为假
}
首先执行一次代码,然后再检查条件,为真就循环
即使条件在第一次就失败了,它也会至少执行一次语句
do {
为真执行的代码
}while(条件为真);
循环表格
'; $row = 1; while($row<=9){ echo ""; $col = 1; while($col<=9){ echo ''; $col++; } echo ""; $row++; } echo ''.$col.'x'.$row.'='.($col*$row).' |
(二)for循环
如果提前确定了脚本的循环次数,就可以使用for循环
for(初始化条件;条件表达式;增量){
循环的代码;
}
循环到了第".$i."层"; } ?> <?php for($i=1;$i<=100;$i++){ if($i%3==0 && $i%5==0){ echo "三五
"; }else if($i % 3 ==0){ echo "三
"; }else if($i % 5 ==0){ echo "五
"; }else{ echo $i."
"; } } ?>
foreach循环:只用于数组,循环数组的每个键值对
foreach($array as
v
a
l
u
e
)
执
行
的
代
码
块
;
每
一
次
循
环
都
会
将
当
前
循
环
的
值
赋
给
变
量
value){ 执行的代码块; } 每一次循环都会将当前循环的值赋给变量
value)执行的代码块;每一次循环都会将当前循环的值赋给变量value,并且数组指针会逐一移动,知道数组的最后一个元素
foreach在后边的数组章节会详细学习,暂作了解
特殊的流程控制语句
break //退出程序,退出本次循环
continue //跳过该次循环,进入下一次循环
return //结束函数 返回函数返回值
'; } ?>