• 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>

  • 相关阅读:
    【流量劫持】SSLStrip 终极版 —— location 瞒天过海
    【流量劫持】沉默中的狂怒 —— Cookie 大喷发
    【流量劫持】SSLStrip 的未来 —— HTTPS 前端劫持
    Web 前端攻防(2014版)
    流量劫持 —— 浮层登录框的隐患
    流量劫持能有多大危害?
    流量劫持是如何产生的?
    XSS 前端防火墙 —— 整装待发
    XSS 前端防火墙 —— 天衣无缝的防护
    XSS 前端防火墙 —— 无懈可击的钩子
  • 原文地址:https://www.cnblogs.com/EricZLin/p/9154869.html
Copyright © 2020-2023  润新知