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>

原文地址:https://www.cnblogs.com/EricZLin/p/9154869.html