一.分支结构
1.单分支
<?php
// 单分支
$money = 6000;
// 正常写法
if($money>=5000){
echo "要交个税了";
}
//简写
if($money>=5000) echo "要交个税了";
2.双分支
<?php
//双分支
$sex = 3;
if($sex==1){
echo "男生";
}else{
echo "女生";
}
// 模板语法: 就是替换掉流程控制中的大括号
// 将起始大括号用冒号代替,将结束大括号用特殊关键字代替
if($sex==1):
echo "男生";
else:
echo "女生";
endif;
3.多分支
<?php
// 多分枝
$hour = 100;
if($hour>=6 && $hour<12 ){
echo "上午";
} elseif($hour>=12 && $hour<18){
echo "下午";
} elseif ($hour>=18 && $hour<24){
echo "晚上";
}else{
echo "凌晨";
}
// 模板语法: 就是替换掉流程控制中的大括号
// 将起始大括号用冒号代替,将结束大括号用特殊关键字代替
if($hour>=6 && $hour<12 ):
echo "上午";
elseif($hour>=12 && $hour<18):
echo "下午";
elseif ($hour>=18 && $hour<24):
echo "晚上";
else:
echo "凌晨";
endif;
4.switch: 用来简化多分支
<?php
// switch (表达式) {
// case 条件1:
// 分支语句...
// break;
// case ...
// default:
// ....
// }
$grade =0;
switch($grade){
case 2:
echo "白银等级";
break;
case 4:
echo "黄金等级";
break;
case 6:
echo "钻石等级";
break;
case 8:
echo "王者等级";
break;
default:
echo "青铜等级";
}
// 模板语法
switch($grade):
case 2:
echo "白银等级";
break;
case 4:
echo "黄金等级";
break;
case 6:
echo "钻石等级";
break;
case 8:
echo "王者等级";
break;
default:
echo "青铜等级";
endswitch;
二.循环变量数组
1.判断型循环: 入口判断型 while(条件) {…}
<?php
$day_arr = ['星期一','星期二','星期三','星期四','星期五','星期六','星期七'];
// current():返回数组中的当前元素的值。
// 每个数组中都有一个内部的指针指向它的"当前"元素,初始指向插入到数组中的第一个元素。
while($day = current($day_arr)){
echo $day,"<br>";
// next():将内部指针指向数组中的下一个元素,并输出
next($day_arr);
}
// 模板写法
reset($day_arr); //数组指针复位,重新指向第一个
while($day = current($day_arr)):
echo $day,"<br>";
// next():将内部指针指向数组中的下一个元素,并输出
next($day_arr);
endwhile;
2.判断型循环: 出口判断型 do {…} while(条件)
<?php
$day_arr = ['星期一','星期二','星期三','星期四','星期五','星期六','星期七'];
do {
echo $day , '<br>';
// 循环体内必须要有更新循环条件的语句,否则进入死循环,
next($day_arr);
} while ($day = current($day_arr));
// do - while 没有对应的模板语法
- 计数型循环: for (循环变量的初始化; 循环条件; 更新循环条件){….}
<?php
$day_arr = ['星期一','星期二','星期三','星期四','星期五','星期六','星期七'];
for($i=0;$i<count($day_arr);$i++){
echo $day_arr[$i] , '<br>';
}
// 模板语法
for($i=0;$i<count($day_arr);$i++):
if($i==3 || $i ==5){
continue; //跳过循环,继续下个
}
echo $day_arr[$i] , '<br>';
endfor;
总结
1.while(条件) {…} 是先判断再循环,而do {…} while(条件) 是先循环再判断;
2.循环必须有跳出循环条件,不然会死循环;
3.do {…} while(条件)没有模板语法,也不常用;