首页> 基础笔记 >PHP基础学习 >基础语法 基础语法

PHP分支结构介绍

作者:小萝卜 2019-08-10 浏览 1773

简介单一条件分支结构(if)、 双向条件分支结构(else从句)、多向条件分支结构(elseif子句)、 多向条件分支结构(switch语句)、巢状条件分支结构

PHP分支结构分为以下几种:
单一条件分支结构(if)、 双向条件分支结构(else从句)、多向条件分支结构(elseif子句)、 多向条件分支结构(switch语句)、巢状条件分支结构。

1.1 单一条件分支结构(if)
基本格式:       
if(条件表达式){           
     语句组;           
    //语句组为单条语句时可省略“{ }”。       
}
当条件表达式的值为真(true)时,PHP将执行语句组,相反条件表达式的值为假(false)时,PHP将不执行语句组,忽略语句组执行下面的语句。
代码示例:

if ($a > $b)
    echo "a 大于 b"; //如果变量a的值大于b的值则会输出:a大于b

$x=10;
$y=20;
if($x<$y){   //判断是否x小于y。多条语句需要使用{ }括起来。
    $t=$x;
    $x=$y;
    $y=$t;
}
    
var_dump($x>$y);  //输出:bool(true)

1.2 双向条件分支结构(else从句)

格式如下     
if(条件表达式){         
      语句组1   
}else{             
      语句组2             
     //语句组为单条语句时可省略“{ }”。   
 }
if-else 条件判断与 if 条件判断类似,所不同的是,if-else 语 句的条件表达式值为真(true)时,会执行 if 的本体语句(语句组1), 而条件表达式值为假(false)时,则执行 else 的本体语句(语句组2)。

1.3 多向条件分支结构(elseif子句)

格式如下   
 if(条件表达式1){         
       语句块1   
 }elseif(条件表达式1){             
        语句块2         ... ...             
}elseif(条件表达式n){         
       语句块n      
}else{         
      语句块n+1    
 }
elseif代码示例:

    date_default_timezone_set("Etc/GMT-8");       //设置时区,中国大陆采用东八区的时间
    echo "当前时间".date("Y-m-d H:i:s",time())." "; //通过date()函数获取当前时间,并输出
    
    $hour = date("H");             	 //获取服务器时间中当前的小时,作为分时问候的条件
    if( $hour < 6 ) {                     //如果当前时间在6点以前,执行下面的语句块
        echo "凌晨好!";
    } elseif ( $hour < 9 ) {           //如果当前时间在6点之后和9点以前,执行下面的语句块
        echo "早上好!";
    } elseif ( $hour < 12 ) {         //如果当前时间在9点之后和12点以前,执行下面的语句块
        echo "上午好!";
    } elseif ( $hour < 14 ) {         //如果当前时间在12点之后和14点以前,执行下面的语句块
        echo "中午好!";
    } elseif ( $hour < 17 ) {          //如果当前时间在14点之后和17点以前,执行下面的语句块
        echo "下午好!";
    } elseif ( $hour < 19 ) {          //如果当前时间在17点之后和19点以前,执行下面的语句块
        echo "傍晚好!";
    } elseif ( $hour < 22 ) {          //如果当前时间在19点之后和22点以前,执行下面的语句块
        echo "晚上好!";
    } else {                                  //如果当前时间在22点之后和次日1点以前,执行下面语句块
        echo "夜里好!";
    }

2.4 多向条件分支结构(switch子句)

//switch- case语句语法:
	switch(表达式){
		case  值1:
		     语句序列1;	     break;	
		case  值2:
		     语句序列2;	     break;
		 …
		default:
		     语句序列 n;	     break;
	 }
当程序执行碰到switch条件判断时,它会取出键值,然后与语句体中的case所列出的值逐一比较,如果数值不符合,则将数值往下一个case传递,如果数值符合,则执行case中的语句,然后再碰到break语句即跳出switch条件判断,如果所有的值比对都不符合,则会执行default中的语句 。
switch语句使用注意事项:
switch语句与if语句不同,它仅能判断一种关系:是否恒等。 
switch语句中case子句的常量可以是整型常量、字符型常量、表达式或变量。
在同一个switch中,case子句的常量不能相同,否则第二个值永远无法匹配到。
case 和 default 子句后面的语句序列允许由多个可执行语句组成,且不必用“{ }”括起来,也可以为空语句。
switch语句中可省略break语句和default子句。但省略后会改变流程。   
switch代码示例:
$week = date("D");   
    switch( $week ) {
        case "Mon":   echo "星期一";  break;                
        case "Tue":    echo "星期二";  break;                    
        case "Wed":   echo "星期三";  break;                    
        case "Thu":    echo "星期四";  break;              
        case "Fri":      echo "星期五";  break;           
        case "Sat":     echo "星期六";  break;        
        case "Sun":    echo "星期日";  break;        
    }   
    switch( $i ) {                             //条件表达式是一个变量$i
        case 2:                                 //和值2匹配时,没有break,将控制转移到下一个case中的语句
        case 3:                                 //和值3匹配时,执行下面的语句块
            echo "\$i和值2或3任一个匹配"; 
            break;                              //退出switch语句
        case 4:                                 //和值为3匹配上时,执行下面的语句块
            echo "\$i和值4匹配时,才会执行";      
            break;                              //退出switch语句
        default:                                //匹配任何和其他case都不匹配的情况, 要放在最后一个case之后
            echo "\$i没有匹配的值时,才会执行";     
    }
1.5 巢状条件分支结构
巢状式条件分支结构就是if语句的嵌套,即指if或else后面的语句块中又包含if语句。if语句可以无限层地嵌套在其他if语句,这给程序的不同部分的条件执行提供了充分的弹性。
语法:
if(表达式1){
   if(表达式2){
        .. .. ..
    }else{
        .. .. ..
    }
}else{
      if(表达式3){  …
      }
}
示例:
$a=88;
echo "数学成绩:  $A < p>";
if($a>=60){
	if($a>=70){
		  if($a>=90){
			echo "不错喔!!这次数学成绩甲等!!";
		  }else{	
			echo "还可以...这次数学成绩乙等!!"; 
		  }
	 }else{
      echo "勉勉强强及格边缘...这次数学成绩丙等!!";
	 }
 }else{
	 echo "有待下次努力...数学成绩不及格!!";
 }

 

 

 

 

很赞哦! (0)

文章评论

    高端网站建设