1、顺序流程控制
计算机默认是顺序执行
比如以下语句:按顺序执行每一条
$a1 = '这是第1条语句<br>'; $a2 = '这是第2条语句<br>'; $a3 = '这是第3条语句<br>'; $a4 = '这是第4条语句<br>'; $a5 = '这是第5条语句<br>'; echo $a1, $a2, $a3, $a4, $a5;
2、分支流程控制
2.1、单分支流程控制
分支控制,就是代码中多了判断,根据真假控制执行语句;
当
$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; }
2.2、双分支流程控制
当
$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; }
2.3、多分支流程控制
当
$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; }
3、循环控制
学生表成绩如下:
//学生成绩表 $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;