顺序流程控制
$a1 = '这是第1条语句<br>';
$a2 = '这是第2条语句<br>';
$a3 = '这是第3条语句<br>';
$a4 = '这是第4条语句<br>';
$a5 = '这是第5条语句<br>';
echo $a1, $a2, $a3, $a4, $a5;
分支流程控制
单分支流程控制
分支控制,就是代码中多了判断,根据真假控制执行语句;
当$a6等于0(false):按相反顺序输出$a5~$a1
$a1 = '这是第1条语句<br>';
$a2 = '这是第2条语句<br>';
$a3 = '这是第3条语句<br>';
$a4 = '这是第4条语句<br>';
$a5 = '这是第5条语句<br>';
$a6 = 0;
if($a6){
echo $a5, $a4, $a3, $a2, $a1;
}
双分支流程控制
/*
当$a6等于1(true):按顺序输出$a1~$a5
当$a6等于0(false):按相反顺序输出$a5~$a1
*/
$a1 = '这是第1条语句<br>';
$a2 = '这是第2条语句<br>';
$a3 = '这是第3条语句<br>';
$a4 = '这是第4条语句<br>';
$a5 = '这是第5条语句<br>';
$a6 = 0;
if($a6){
echo $a1, $a2, $a3, $a4, $a5;
}else{
echo $a5, $a4, $a3, $a2, $a1;
}
多分支流程控制
当$a6等于1:输出$a1
当$a6等于2:输出$a2
当$a6等于3:输出$a3
当$a6等于4:输出$a4
当$a6等于5:输出$a5
否则:按顺序输出$a1~$a5
if(表达式)
$a1 = '这是第1条语句<br>';
$a2 = '这是第2条语句<br>';
$a3 = '这是第3条语句<br>';
$a4 = '这是第4条语句<br>';
$a5 = '这是第5条语句<br>';
$a6 = 5;
if ($a6 === 1) {
echo $a1;
} elseif ($a6 === 2) {
echo $a2;
} elseif ($a6 === 3) {
echo $a3;
} elseif ($a6 === 4) {
echo $a4;
} elseif ($a6 === 5) {
echo $a5;
} else {
echo $a1, $a2, $a3, $a4, $a5;
}
switch(表达式)-简化分支
switch ($a6) {
case $a6 === 1;
echo $a1;
break;
case $a6 === 2;
echo $a2;
break;
case $a6 === 3;
echo $a3;
break;
case $a6 === 4;
echo $a4;
break;
case $a6 === 5;
echo $a5;
break;
default:
echo $a1, $a2, $a3, $a4, $a5;
}
循环控制
学生表成绩如下:
//学生成绩表
$student = [
['id' => 1, 'name' => '小明', 'grade' => 80],
['id' => 2, 'name' => '张三', 'grade' => 97],
['id' => 3, 'name' => '小丽', 'grade' => 95],
['id' => 4, 'name' => '小王', 'grade' => 78],
['id' => 5, 'name' => '李四', 'grade' => 98],
['id' => 6, 'name' => '小美', 'grade' => 88]
];
使用不同循环输出全部信息:while 循环
while ($students = current($student)) {
echo $students['id'] . '.' . $students['name'] . '的成绩是:' . $students['grade'] . '<br>';
next($student);
}
do...while 循环
$num = 0;
do {
echo $student[$num]['id'] . '.' . $student[$num]['name'] . '的成绩是:' . $student[$num]['grade'] . '<br>';
$num++;
} while ($num < count($student));
for 循环
for ($num = 0; $num < count($student); $num++) {
echo $student[$num]['id'] . '.' . $student[$num]['name'] . '的成绩是:' . $student[$num]['grade'] . '<br>';
}
以上3种方法均输出同样结过:
1.小明的成绩是:80
2.张三的成绩是:97
3.小丽的成绩是:95
4.小王的成绩是:78
5.李四的成绩是:98
6.小美的成绩是:88
总结:
PHP三大流程控制有了进一步了解
知识点
<?php
// 1、当流程控制语句中只有一行代码的时候,可以省略大括号
if ($a > $b) echo 'a大于b';
else echo 'a小于b';
// 2、三元运算符语法:条件 ? 结果(true) : 结果(false)
echo ($a > $b) ? 'a大于b' : 'a小于b';
// 3、模板语法(将起始大括号用冒号代替,将结束大括号用特殊关键字代替)
// if语句:
if ($a > $b) : echo 'a大于b';
else : echo 'a小于b';
endif;
// while语句:
while ($students = current($student)) : echo $students['id'] . '.' . $students['name'] . '的成绩是:' . $students['grade'] . '<br>';
next($student);
endwhile;