zoukankan      html  css  js  c++  java
  • PHP流程控制

    一、概念

    • 流程控制包括三个部分,顺序结构(程序自上而下的一个执行过程),分支结构(根据某一条件将程序转向不同的分支处执行)和循环结构(计算机最大特点就是计算速度快,解决重复性的问题)

    二、分支结构

    • if分支

      ①单分支:if(表达式){语句体}

    <?php
       header('Content-type:text/html;charset=utf-8');//防止在不同浏览器出现乱码bug
       $num=1;
       if($num==1){
           echo '输入的是1';
       }
       if($num==2){
           echo '输入的是2';
       }
       //说明,当表达式成立的时候,执行语句,如果不成立直接结束if结构,继续其后的语句执行
    ?>

      ②双分支:if(表达式A){语句体} else if(表达式B){语句体}

    <?php
        //说明,当表达式A成立的时,执行A的语句体,如果不成立来判断条件B,当任何一个语句体结束后,不再会去进行其他表达式的判断
       header('Content-type:text/html;charset=utf-8');//防止在不同浏览器出现乱码bug
       $num=1;
       if($num==1){
           echo '输入的是1';
       }else if($num==2){
           echo '输入的是2';
       }
       //这种方法比单分支效率增加了,但是当数据不合法时,应该给出适当的提示
    ?>

      ③多分支:if(表达式A){语句体} else if (表达式B){语句体} else if (表达式){ 语句体} else {语句体}

    <?php
       header('Content-type:text/html;charset=utf-8');//防止在不同浏览器出现乱码bug
       $num=1;
       if($num==1){
           echo '输入的是1';
       }else if($num==2){
           echo '输入的是2';
       }else if($num==3){
           echo '输入的是3';
       }else{
           echo '输入的数据不合法';
       }
    ?>
    <?php
       header('Content-type:text/html;charset=utf-8');//防止在不同浏览器出现乱码bug
       $num=1;
       if($num==1)
           echo '输入的是1';
       else if($num==2)
           echo '输入的是2';
       else if($num==3)
           echo '输入的是3';
       else
           echo '输入的数据不合法';
           
       //注意:如果语句体只有一条语句,此语句体的{}号可以省略
    ?>
    • switch分支 

      ①语法

      switch(变量){

        case 值1:语句体1 break;

        case 值2:语句体1 break;

        case 值3:语句体1 break;

        .........

        default:缺省语句体

      }

    <?php
       header('Content-type:text/html;charset=utf-8');//防止在不同浏览器出现乱码bug
       $day=3;
       switch($day){
           case 1:echo '星期一';break;
           case 2:echo '星期二';break;
           case 3:echo '星期三';break;
           case 4:echo '星期四';break;
           case 5:echo '星期五';break;
           case 6:echo '星期六';break;
           case 7:echo '星期日';break;
           default:echo '数据不合法';
       }
    ?>

      ②与if分支的区别:if分支可以表示一个范围,switch主要用于表示某个具体的值

    三、循环结构

    • for循环

      ①语法:for(循环控制变量初始化;表达式;循环控制变量更改){ 循环体 }

      ②案例:输出表格

    <?php
       $tab="<table border='1' rules='all' width='100' height='100'>";
       //外层循环控制行
       for($j=1;$j<=10;$j++){
           $tab.="<tr>";
           //内层循环控制列
           for($i=1;$i<=$j;$i++){
               $tab.="<td>数据</td>";
           }
           $tab.="</tr>";
       }
       $tab.="</table>";
       echo $tab;
    ?>

    • while循环

      ①语法:while(表达式){循环体}-------也应该包括循环的三要素

    <?php
       //说明:不成立,直接结束循环结构,继续其后的语句执行,成立,执行循环体,循环体执行结束后再来判断条件,直到条件不成立,退出循环结构
       $i=1;
       while($i<=10){
           echo $i,'<br>';
           $i++;
       }
    ?>

      ②与for循环的区别:for循环主要用于循环次数已知或者根据某一条件可以确定,while循环用于循环次数未知的循环

    • do while循环

      ①语句:do{ 循环体 } while (表达式)

    <?php
       //说明:执行循环体-->判断条件---->成立则退出,不成立继续执行循环体--->判断条件---->.....
       $i=1;
       do{
           echo $i,'<br>';
           $i++;
       }while($i<=10);
    ?>

      ②与while循环的区别:至少会执行循环体一次

    四、循环的结束和退出

    • continue

      ①语法:continue【n】

      ②说明:n的取值是一个整数,如果省略默认是1,n主要用在循环嵌套情况下,结束当前的循环结构的循环,继续上n层循环结构的下一次循环

    • break

      ①语法:break【n】

      ②说明:n的取值是一个整数,如果省略默认是1,n主要用在循环嵌套情况下,直接结束上n次循环的循环结构

    五、流程控制语句的标签语法(php代码嵌入到HTML文档)

    • if的标签语法

      ①标准版:<?php if(......) : ?> ................................<?php endif ?>        

      ②简化版:<?php if(......) {?> ................................<?php } ?>        

    • for的标签语法

      ①标准版:<?php for(......) : ?> ................................<?php endfor ?>        

      ②简化版:<?php if(......) {?> ................................<?php } ?>     

    • while的标签语法

      ①标准版:<?php while(......) : ?> ................................<?php endwhile ?>        

      ②简化版:<?php while(......) {?> ................................<?php } ?>      

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <?php
            //模拟从数据库得到的数据
            $data=[
                [201810,'xiaomi','MI5',1999],
                [201811,'xiaomi','MI6',2499],
                [201812,'xiaomi','MI8',2999],
                [201813,'xiaomi','note3',2199]
            ];
        ?>
         <table border='1' rules='all'> <thead> <tr> <td>订单号</td> <td>品牌</td> <td>商品名</td> <td>价格</td> </tr> </thead> <tbody> <?php for($i=0;$i<4;$i++){?> <tr> <td><?php echo $data[$i][0]?></td> <td><?php echo $data[$i][1]?></td> <td><?php echo $data[$i][2]?></td> <td><?php echo $data[$i][3]?></td> </tr> <?php }?>//注意,前面一定要有空格,不然会报错 </tbody> </table> </body> </html>

  • 相关阅读:
    转 : jmeter分布式测试的坑
    Node.js 事件循环
    ubuntu 16.04 安装nodejs
    java中native的用法
    分布式与集群的概念区别
    IntegerToBinaryString
    Mysql InnoDB事务
    浅析Mysql InnoDB存储引擎事务原理
    Mysql数据库事务的隔离级别和锁的实现原理分析
    MySQL中MyISAM和InnoDB的区别
  • 原文地址:https://www.cnblogs.com/EricZLin/p/9154869.html
Copyright © 2011-2022 走看看