Fork me on GitHub

PHP流程控制

  PHP流程控制

流程控制就是人类社会的做事和思考和处理问题的方式和方法,例如,一个人要去一个地方可能选择以下几种方式:

1,司机开车

2,民航

3,自己家的专机

4,火车动车

5,骑马

6,游轮

1.1.4.1if条件结构流程

王同学是生活极度充满娱乐化和享受生活的人。他抵达北京或者大连的时候做的事,他抵达后做的事情,如下:

半夜到达,先去夜店参加假面舞会

早上抵达,爱在酒店泡个澡

中午到达,会吃上一份神户牛肉

晚上到达,总爱去找朋友去述说一下心中的寂寞

我们来了解一下他的语法规则【知识点要求:默写】

<?php
if(判断语句1){
    执行语句体1
}elseif(判断语句2){
    执行语句体2
}else if(判断语句n){
        执行语句体n
}else{
        最后的else语句可选
}
//后续代码
?>
<?php
$week = date("6");
//判断星期小于6,则输出:还没到周末,继续上班.....
if ($week < "6") {
echo "还没到周末,继续上班.....";
} else {
echo 'list.go';
}
?>
<?php
$date = rand(0,23);//给$date定义一个
echo "到达时间为 $date 点 \n";
if ($date >= 6 && $date <10){
    echo '去酒店泡澡';
}elseif($date >= 10 && $date <18){
    echo '吃神户牛肉';
}elseif($date >= 18 && $date <22){
    echo '找个朋友聊聊天';
}else{
    echo'睡觉';
}
?>

1.1.4.2 if语句多种嵌套

王总在出行和项目中也是极度有计划性。他给自己的生活秘书和工作秘书分别指派了出差的行程:

生活上:

 先查天气,下雨带雨具和毛巾。不下雨要带防晒霜

 雨具、毛巾和防晒霜的情况要提前检查,如果没有要及时买

工作上:

 要提前沟通去大连前的工作计划,准备好了要及时检查,检查合格,打印签单。

  没有及时准备好的情况下,要列出主要的项目沟通议题。

类似于上面的这种情况判断,我们就需要用到if...elseif...else反复嵌套的结构了。

if语句中可以嵌套一个或多个if语句,以实现对多个参数的判断,这就是if语句的多种嵌套。其结构形式如下:

<?php
if(判断1){
    if(判断2){
            代码段 1    
    }else{
            代码段2
        }
}else{
    if(判断3){
            代码段3
        }else{
            代码段4
        }
}
?>
<?php
$kaihui=rand(0,1);
if($kaihui){
    $zhunbei=rand(0,1);
    if($zhunbei){
        echo '查看会议报告';
    }else{
        echo '炒工作秘书鱿鱼';
    }
}else{
    $shenghuomishu=rand(0,1);
    if($shenghuomishu){
        $xiayu=rand(0,1);
        if($xiayu){
            $yusan=rand(0,1);
            if($yusan){
                echo '带上雨伞';
            }else{
                echo '购买雨伞然后带上';
            }
        }else{
            $fangshaishuang=rand(0,1);
            if($fangshaishuang){
                echo '带上防晒霜';
            }else{
                echo '购买防晒霜然后带上';
            }
        }
    }else{
        echo'好好学习天天向上';
    }
}
?>
//书写技巧:先将多个if(){}else{}语句写出来,然后逐个嵌套!

2.1.4.2 switch语句的使用

王同学家里头特别有钱,所以他的行程方式和正常人的又有些不一样。

他的出行方式呢有6种,如下:

1,司机开车

2,民航

3,自己家的专机

4,火车动车

5,骑马

6,游轮

switch...case的语法结构如下:

<?php
switch(变量){    //字符串,整型
       case 具体值:
               执行代码;
               break;
       case 具体值2:
               执行代码2;
               break;
       case 具体值3:
               执行代码3;
               break;
       default:
}

?>

上面的break是可选的

上面的default也是可选的

不要在case 后面写成分号,后面是冒号:

不要在case后面写判断区间,如($foo > 20 或者 $foo == 30)

switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else..

<?php
$tool=rand(1,8);//定义出行工具
switch($tool){
    case 1:
        echo '飞机';
        break;
    case 2:
        echo '大炮';
        break;
    case 3:
        echo '潜水';
        break;
    case 4:
        echo '骑马';
        break;
    case 5:
        echo '民航';
        break;
    case 6:
        echo '游泳';
        break;
    default:
        echo '爬着去';
}
?>

3.1.4.2 do while循环语句的使用

王同学需要反复往返于北京和大连,就是典型的循环结构。假设王思总投资这个项目需要往返大连100次,每次往返都王同学都会计数一次。难道我们写一百遍同样的代码?显然对于智商极高的程序员来说不可能这样处理。

我们抽象了人类的这种思维。我们定义一种循环结构

<?php
//定义需要往返的次数,老外喜欢从0开始计数,我们也从0开始计
$count = 0;
//while后面接布尔值判断,为真执行,为假停止
//$count 小于100的时候执行,也就是$count为0至99的时候执行
//如果$count不小于100了,循环停止执行后续的代码
//循环开始处
while($count < 100){
   echo '我是王思总,我是第' . $count .'次出差<br />';
   //每次执行让$count+1,这样的话,就不会产生$count永远小于100的情况了
   $count++;
//循环结束
}
echo '后续代码';
?>

下面我们来看看do...while与while的区别

<?php
$count=0;
//while(){}先判断,后执行。
while($count < 1){ echo "这是王总第 $count 次出差 <br />"; $count++; } echo '<br />';
//do{}while()先执行一次,然后判断。
do{ echo "这是王总第 $count 次出差 <br />"; }while($count < 0); echo '<br />'; for($cnt=2;$cnt<=3;$cnt++){ echo "分手后第 $cnt 年,我全都忘了你的样子<br />"; }?>

4.1.4.2 for循环语句的使用

同学反复往返与北京和大连,并且在本上记录往返次数。在PHP中还有另外一种实现方式能够实现同样的计数。

for 循环是 PHP 中的一种计数型循环,它的语法比较数活多变。这是一个必须要掌握的知识点。

for (表达示1; 表达示2; 表达示3){
        需要执行的代码段
}
表达式1 是初始化赋值,可以同时赋值多个代码。
表达示2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。
表达示3 在每次循环之后被求值。

我们来写个简单的例子,看看:

<?php
for ($i = 1; $i <= 10; $i++) {
    echo '分手后第'.$i.'年,我全都忘了你的样子<br />';
}
?>

5.1.4.2 goto循环语句的使用

我们讲解到一个故事,王同学每周往返,但有一个特例:

项目失败后或者集团临时除知除外,他就可以不再这么每周往返了。

基本语法

语法参考:

<?php
$count=0;
while($count < 1){
    echo "这是王总第 $count 次出差 <br />";
    $count++;
}
echo '<br />';
goto end;
do{
    echo "这是王总第 $count 次出差 <br />";
}while($count < 0);
echo '<br />';
for($cnt=2;$cnt<=3;$cnt++){
    echo "分手后第 $cnt 年,我全都忘了你的样子<br />";
}
end:
echo '王总退休了,小明失恋了';
?>

 

 //goto end;和end:之间的编码会直接被略过。因为goto end;直接跳转到了ech:

posted @ 2020-09-24 17:44  子墨·咖啡  阅读(100)  评论(0编辑  收藏  举报