分支
实例代码如下:
<?php
// ! 流程控制: 分支
$score = 88;
// * 1. 单分支
if ($score >= 60) {
echo '恭喜, 你已经及格了<br>';
}
// * 2. 双分支
// if ($score >= 60) {
// echo '恭喜, 你已经及格了<br>';
// } else {
// 默认分支
// echo '不及格<br>';
// }
// 分支只有一行代码,可以不写大括号
if ($score >= 60)
echo '恭喜, 你已经及格了<br>';
else
// 默认分支
echo '不及格<br>';
// * 3. 多分支
$score = 65;
if ($score>=60 && $score < 70)
echo "{$score}分,合格 <br>";
else if ($score>=70 && $score < 80)
echo "{$score}分,良好 <br>";
else if ($score >= 80)
echo "{score}分,优秀 <br>";
// 分数 < 60, 默认分支
else
echo "{$score}分,不及格 <br>";
echo '<hr>';
// * 4. 多分支的语法糖:switch
$age = 36;
switch (true) {
case $age >= 18 && $age < 30:
echo "{$age}岁, 正值青年<br>";
break;
case $age >= 30 && $age < 45:
echo "{$age}岁, 青壮年,好好奋斗! <br>";
break;
case $age >= 45:
echo "{$age}岁, 事业有成,家庭幸福美满! <br>";
break;
default:
echo "{$age}岁, 学习的黄金阶段,好好学习! <br>";
}
运行后
循环
实例代码如下:
<?php
// ! 流程控制: 循环
// 循环本质上还是"分支"
$days = ['今天', '明天', '昨天'];
// 1. 初始化循环变量,这里用索引当循环变量, $i=0;指向第一个数组元素
// $i = 0;
// 2. 循环条件
// 数组长度 = 最大索引 + 1
// 3. 更新循环条件
// $i = $i + 1;
/**
* 循环三要素:
* 1. 初始化循环变量: $i =0;
* 2. 循环条件: $i < count($days);
* 3. 更新循环条件: $i = $i + 1
*/
// * while() 来简化以上的分支过程
$list = '<ul style="border:1px solid;background: lightcyan">';
$i = 0;
while ($i < count($days)) {
$list .= "<li>{$days[$i]}</li>";
// 更新条件
$i = $i + 1;
}
$list .= '</ul>';
echo $list;
// while 还有一个双胞胎, do-while 与上面的区别在于条件判断的时机不同
$list = '<ul style="border:1px solid;background: lightgreen">';
$i = 0;
do {
$list .= "<li>{$days[$i]}</li>";
// 更新条件
$i = $i + 1;
} while ($i > count($days));
$list .= '</ul>';
echo $list;
// for 可看成 while 的语法糖
$list = '<ul style="border:1px solid;background: violet">';
for ($i = 0; $i < count($days); $i++) {
$list .= "<li>{$days[$i]}</li>";
}
$list .= '</ul>';
echo $list;
// 中断或跳过某次循环
// break; continue
$list = '<ul style="border:1px solid;background: pink">';
for ($i = 0; $i < count($days); $i++) {
// 只输出前二个
// if ($i > 1) break;
// 跳过第2个,只输出第1个和第3个
if ($i === 1) continue;
$list .= "<li>{$days[$i]}</li>";
}
$list .= '</ul>';
echo $list;
运行后