PHP流程控制语句介绍与使用

<?php
  /*
   * PHP流程控制语句
   * 1、顺序结构
   * 2、分支结构
   * 3、循环结构
   */
   
   //1、顺序结构:按照语句次序顺序依次执行下去
   //sum函数内部语句就是顺序依次执行的
   function sum($a,$b)
   {
   	$num=0;
   	$num=$a+$b;
   	echo $num;
   }
   
   sum(2,3);
   
   
   echo '<p>';
   //2、分支结构:根据判断条件选择执行不同的语句
   //形式1:if语句
   //形式2:if..else语句
   //形式3:嵌套的else if语句
   //switch语句
   
   //if语句
   //格式如下:
   //if(expr){
   // state1;
   //state2;
   //.....	
   //}
   
   $day=11;
   if($day==11)
   {
   	 echo '今天是什么日子?<br>';
   	 echo '笨蛋,光棍节...<br>';
   }
   
   echo '<p>';
   
   //if...else语句
   //格式如下:
   /*
    * if(expr)
    * {
    *	state1;
    *   ....
    *}else{
    *   state2;
    * .....	
    *}
    */
    
    $weather="rain";
    if(strcmp($weather,"sun")==0)
    {
    	echo '今天天气晴好,我们去爬山吧<br>';
    }else{
    	echo '天气不怎么好,我们还是呆在家里吧<br>';
    }
    
   
   echo '<p>';
   //嵌套的else..if语句
   //格式如下:
   /*
    * if(expr1){
    *     state1;
    * }else if(expr2){
    *     state2;
    * }else if(expr3){
    *     state3;
    *}....
    *else{
    *     staten;
    * }
    */
    
    $score=98;
    if($score>=90){
    	echo 'A';
    }else if($score>=80){
    	echo 'B';
    }else if($score>=70){
    	echo 'C';
    }else if($score>=60){
    	echo 'D';
    }else{
    	echo 'E';
    }
    
    
    echo '<p>';
    //switch语句:可以提高程序可读性
    //语句格式如下:
    /*
     * switch(variable){
     *    case value1:
     *         state1;
     *         break;
     *    case value2:
     *         state2;
     *         break;
     *    ...
     *    default:
     *         state n;  
     * }
     */
     
     setlocale(LC_TIME,"chs");//设置本地环境
     $weekday=strftime("%A");//声明星期变量并赋值
     switch($weekday){
     	case "星期一":
     	     echo "今天是$weekday,新的一周开始了!";
     	     break;
     	case "星期二":
     	     echo "今天是$weekday,认真工作!";
     	     break;
     	case "星期三":
     	     echo "今天是$weekday,加把劲!";
     	     break;
     	case "星期四":
     	     echo "今天是$weekday,再坚持一下!";
     	     break;
     	case "星期五":
     	     echo "今天是$weekday,终于到头了!";
     	     break;
     	case "星期六":
     	     echo "今天是$weekday,疯狂一把!";
     	     break;
     	default:
     	     echo "今天是$weekday,平复一下心情!";   	       	     	
     }
    
    
    echo '<p>';
    //3、循环结构:一定条件下反复执行某一操作
    //形式有4种:
    //形式1:while语句
    //形式2:do...while语句
    //形式3:for语句
    //形式4:foreach语句
    
    //while语句
    //特点:先判断表达式,后执行语句
    //语法如下:
    /*
     * while(expr){
     *       state1;
     *       ....
     * }
     */
     
     $num=1;
     $str="10以内的偶数为:";
     while($num<=10)
     {
     	if($num%2==0){
     		$str.=$num." ";
     	}
     	$num++;
     }
     
     echo $str;
     
     
     echo '<p>';
     //do...while语句
     //特点:先执行语句,然后再判断表达式。不管条件是否满足,至少执行语句1次
     //语法如下:
     /*
      * do{
      *   state;
      * }while(expr);
      */
      
      $m=1;
      while($m!=1)
      {
      	echo "看不到我";
      }
      
      do{
      	echo "看到了";
      }while($m!=1);
      
      
      echo '<p>';
      //for语句
      //特点:前提是要知道循环次数
      //语法如下:
      /*
       * for(expr1;expr2;expr3){
       *         state;
       * }
       */
     //其中,expr1为变量赋初始值(只执行1次);expr2为循环条件;expr3--满足条件expr2,执行循环体语句后
     //expr3会进行递增或递减操作
     
     $num=1;
     for($i=1;$i<=50;$i++){
     	$num*=$i;
     }
     
     echo '50!='.$num;
     
     
     echo '<p>';
     //foreach语句
     //特点:只能用于数组或对象
     //语法如下:
     /*
      * foreach(array_expression as $value) 
      * state;
      * 或
      * foreach(array_expression as $key=>$value)
      * state;
      */
     
     //foreach语句遍历数组array_experssion,每次循环时,将当前数组中的值赋值给$value(或是$key和$value)
     
     $good_name=array("1"=>"iPhone5s","2"=>"数码相机");
     $good_price=array("1"=>"5000","2"=>"2000");
     $good_num=array("1"=>"1","2"=>"3");
     echo '<table  width="580" border="1" cellpadding="1" cellspacing="1" bordercolor="#FFFFFF" bgcolor="#c17e50">' .
     		'<tr>' .
     		'<td width="145" align="center" bgcolor="#FFFFFF" class="STYLE1">商品名称</td>' .
     		'<td width="145" align="center" bgcolor="#FFFFFF" class="STYLE1">价格</td>' .
     		'<td width="145" align="center" bgcolor="#FFFFFF" class="STYLE1">数量</td>' .
     		'<td width="145" align="center" bgcolor="#FFFFFF" class="STYLE1">金额</td>' .
     		'</tr>';
    foreach($good_name as $key=>$value){
    	echo '<tr>' .
    			'<td height="25" align="center" bgcolor="#FFFFFF" class="STYLE2">'.$value.'</td>' .
    					'<td  align="center" bgcolor="#FFFFFF" class="STYLE2">'.$good_price[$key].'</td>' .
    							'<td  align="center" bgcolor="#FFFFFF" class="STYLE2">'.$good_num[$key].'</td>' .
    									'<td  align="center" bgcolor="#FFFFFF" class="STYLE2">'.$good_num[$key]*$good_price[$key].'</td>' .
    											'</tr>';
    											
    }
    
    echo '</table>';
    
    
    echo '<p>';
    //跳转控制语句
    //1、break语句
    //2、continue语句
    //3、return语句
    
    //break语句:一般用于循环中,用来终止当前的循环;另外,在switch语句体中,用于退出switch执行体
    //注意:break n可以用于跳出几重循环,其中参数n指定要跳出的循环数量
    
    while(true){
    	$tmp=rand(1,20);
    	echo $tmp.' ';
    	if($tmp==10){
    		echo '<p>变量等于10,终止循环<p>';
    		break;
    	}
    }
    
   
   while(true)
   {
   	for(;;)
   	{
   		for($i=0;$i<=10;$i++)
   		{
   			echo $i.' ';
   			if($i==6)
   			{
   				echo '<br>变量$i等于6,跳出1重循环。<p>';
   				break 1;//跳出本1重循环
   			}
   		}
   		
   		for($j=0;$j<20;$j++)
   		{
   			echo $j.' ';
   			if($j==10)
   			{
   				echo '<br>变量$j等于10,跳出3重循环。<p>';
   				break 3;//跳出3重循环
   			}
   		}
   	}
   	
   	echo '应该不会输出我。';
   }
   
   
   echo '<p>';
   
   //continue语句:只能跳出本次循环,然后进入到下一次循环中
   //注意:continue也可以指定跳出几重循环 continue n;

 	 for($i=0;$i<10;$i++)
   {
   	 echo $i.' ';
   	 if($i==6)
   	 {
   	 	echo '<br>变量$i等于6,终止本次循环。<br>';
   	 	continue ;
   	 }
   }
   
     echo '<p>';
     
  
	$arr = array("PHP0","PHP1","PHP2","PHP3","PHP4","PHP5");	//声明一个数组变量$arr
	for($i = 0; $i < 6; $i++)
	{					//使用for循环
		echo "<br>";
		if($i % 2 == 0)
		{						//如果$i的值为偶数,则跳出本次循环
			continue;
		}
		for(;;)
		{										//无限循环
			for($j = 0; $j < count($arr); $j++)
			{		//再次使用for循环输出数组变量
				if($j == $i)
				{							//如果当前输出的数组下标等于$i
					continue 3;							//跳出最外重循环
				}else
				{
					echo $arr[$j]."\t | ";				//输出表达式
				}
			}
		}
		echo "不会看到!";
	}
	
  	
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Data菌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值