php流程控制語句

php流程控制語句

  條件控制語句和循環控制語句是兩種基本的語法結構。它們都是用來控制程式執行流程的,也是構成程式的主要語法基礎。

 程式的3種控制結構
 條件控制語句
 循環控制語句
 跳轉語句
 包含語句

1.程式設計的結構大致分為順序結構,選擇(分支)結構和循環結構3種。

  循環結構可以按照需要多次重復執行一行或者多行代碼,循環結構分為前測試型循環和後測試型循環兩種。
 前測試型循環,先判斷後執行,
 後測試型循環,先執行後判斷。
 
  條件控制語句:if ,slse,elseif和switch
  循環控制語句:while,do…while,for和foreach
  跳轉控制語句:break,continue和retun

2.條件控制語句
  所謂的條件控制語句就是對語句中不同條件的值進行判斷,進而根據不同條件執行不同的語句,在條件控制語句中主要有兩個語句:if條件控制語句和switch多分支語句。

  1. if條件控制語句是所有流程控制語句中最簡單,最常用的一個,根據獲取的不同條件判斷執行不同的語句
 if(expr)
  statement;      //基本的表達式
 if(){}   //執行多條件語句的表達式
 if(){}else{}  //通過else延伸瞭表達式
 if(){}elseif(){}else{}  //這是加入瞭elseif同時判斷多個條件的表達式
  
 //參數expr按照佈爾求值,如果為true將執行statement,如果為FALSE,則忽略statement,if語句可以無限層地嵌套到其他if語句中去,實現更多條件的執行。


   2. switch多分支語句:switch語句和if條件控制語句類似,實現將同一個表達式與很多不同的值比較,獲取相同的值,並且執行相同的值對應的語句。

 switch(expr){     //表達式的值,即switch語句的條件變量的名稱
  case expr1;    //放在case語句之後,是要與條件變量expr進行匹配的值中的一個
   statement1;   //條件匹配時,執行的代碼
   break;     //終止語句的執行,即當語句在執行過程中,遇到break主停止執行,跳出循環體
  case exp2;
   statement2;
   break;
       default;   //case的一個特例,其他任何case都不匹配的情況,並且是最後一條case語句
      statementN;
   break;
  }

 

3、循環語句

 循環語句,是在滿足條件的情況下反復執行某一個操作,在php中,提供4個循環控制語句,分別是while循環語句,do..while,for,foreach循環

   1.while循環語句,其作用是反復地執行某一項操作,是循環控制語句中最簡單的一個,也是最常用的一個,while循環語句對表達式的值進行判斷,當表達式為非0時,執行while語句中的內嵌語句,當表達式的值為0時,則不執行while語句中的內嵌語句。該語句的特點是:先判斷表達式,後執行語句。
 例:while(expr){  
     statement;
     }         //隻要while表達式的expr的值為TRUE,就重復執行嵌套中的statement語句,如果while表達式的值一開就是FALSE,則循環語句一次也不執行。

 while循環語句:
  $a=1;
  $b=10;
  while ($a<=$b){
   $p=40*12*$a;
   echo "aaaa:".$a."bbbbb:".$p."<br>";
   $a++;
  }

  2、do..while循環語句的使用方式和while相似,也是通過判斷表達式的值來輸出循環語句。該語句的操作流程是:先執行一次指定的循環語句,然後判斷表達式的值,當表達式的值為非0時,返回重新執行循環體語句,如此反復。直到表達式的值等於0為止。特點是,先執行循環體,然後判斷循環條件是否成立。

     例:
 do{
  statement; //程式在未經判斷之前就先進行一次循環,循環到while部分才判斷條件,即使條件不滿足,程式也已經運行瞭一次。
 }while(expr);
 
  while和do..while語句之間的區別:do..while語句先執行後判斷,無論表達式的值是否為TRUE,都將執行一次循環,而while語句則是首先判斷表達式的值是否為TRUE,如果為TRUE則執行循環語句,否則將不執行循環語句。

   3、for循環語句,是php中最復雜的循環控制語句,擁有3個條件表達式,語法如下:

 for(expr1;expr2;expr3){ 
  statement
 }
    
 expr1 必要參數,第一個條件表達式,在第一次循環開始時被執行
 expr2 必要參數,第二個條件表達式,在每次循環開始時被執行,決定循環是否繼續
 expr3 必要參數,第三個條件表達式,在每次循環結束時被執行,
 statenebt  必要參數,滿足條件後,循環執行的語句
 
   其執行過程:首先執行表達式1,然後執行表達式2,並對表達式2的值進行判斷,如果值為真,則執行for循環語句中指定的內嵌語句,如果值為假,則結束循環,跳出for循環語句,最後執行表達式3(切忌是在表達式2的值為真時),返回表達式2繼續循環執行,

  4、foreach循環語句
 foreach循環控制語句自php4開始被引入,主要用於處理數組,是遍歷數組的一種簡單方法,如果將該語句用於處理其他的數據類型或者初始化的變量,將會產生錯誤。該語句的語法有兩種格式:
 foreach(array_expression as $key=>value){
  statement
 }
    或
 foreach(array_expression as $value){
  statement
 }

   //array_expression是指定要遍歷的數組,其中$key是數組的鍵名,$value是數組的值,statement是滿足條件時要循環執行的語句。

4、跳轉語句

 跳轉語句主要分為break語句,continue語句和return語句3部分,其中前兩個跳轉語句使用起來非常簡單,而且非常容易掌握,主要原因是它們都被應用在指定的環境中,如for循環語句中。return語句在應用環境上較前兩者相對單一,一般被使用在自定義函數和面向對象的類中。

 break關鍵字可以終止當前的循環,包括while,do..while,for,foreach和switch在內的所有控制語句,break語句不僅可以跳出當前的循環,還可以指定跳出幾重循環,格式如:break n; 參數n指定要跳出的循環數量。

 continue跳轉語句,在程式執行break後,程式將跳出循環,而開始繼續執行循環體的後續語句,continue跳轉語句的作用沒有break那麼強大,隻能終止本次循環,而進入到下一次循環中。在執行contiue語句後,程式將結束本次循環的執行,並開始下一輪循環的執行操作。continue也可以指定跳出幾重循環。

 break和continue語句都是實現跳轉的功能,但還有區別,continue語句隻是結束本次循環,並不是終止整個循環的執行,而break語句則是結束整個循環過程,不在判斷執行循環的條件是否成立。

5、包含語句
 
 引用外部文件可以減少代碼的重用性,

  使用include()語句包含外部文件時,隻有代碼執行到該語句時才將外部文件包含進來,當所包含的外部文件發生錯誤時,系統隻給出一個警告,而整個php文件則繼續向下執行。語法: include(filename); filename是指定的完整路徑文件名。
 
 require()語句與include()語句類似,都是實現對外部文件的調用,語法require(filename); 當使用require()語句載入文件時,它會作為php文件的一部分被執行,例如,通過require()載入一個網而文件,那麼文件內的任何php命令都會被處理,但是,如果將php腳本單純放到html網頁中,它是不會被處理的。

 include_once()語句,include_once()與include()函數的區別,應用include_once()函數多次調用相同的文件,程式隻會調用一次。他和include函數基本一樣,唯一區別是,就是include_once函數會在導入文件前先檢測該文件是否在該頁面的其他部分被導入過,如果有的話就不會重復導入該文件,這個區另很重要。如果在導入一些自定義函數,如果重復導入會有問題。
 
 require_once()語句,是require的延伸,與他的功能類似。同include_once()語句的意義一樣。如果require_once語句在同一頁面中調用瞭兩個相同的文件,那麼在輸出時隻有第一個文件被輸出,第一次調用的文件不會被輸出。

    include()和require()語句的區別:
 
 require()語句調用文件時,如果沒找到文件,會輸出錯誤信息,並且立即終止腳本處理,而include()沒找到則會發出警告,不會終止腳本的處理。
 require()語句調用文件時,隻要程式一執行,會立刻調用外部文件,而通過include()語句調用外部文件時,隻有程式執行到該語句時,才會調用外部文件。

    require_once()和include()語句的區別:他們的用途是確保一個被包含文件隻能被包含一次,可以防止意外地多次包含相同的函數庫而導致函數的重復定義並且產生錯誤的情況,但兩都區別和require()與include()之間的一樣。


復習:

 1.順序結構,
 2.選擇(分支)結構
 3.循環結構
 4.條件控制語句 學2種
 5.循環控制語句 學4種
 6.跳轉語句  學3種
 7.包含語句,2種,應該是4種,及他們的區別

作者“技術為王”

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *