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