博客列表 >PHP大牛成长之路:PHP三大流程控制

PHP大牛成长之路:PHP三大流程控制

周Sir-BLOG
周Sir-BLOG原创
2020年07月07日 00:22:34954浏览

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;


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议