初探語法資料型態變數與常數外部變數環境變數運算元引用檔案函數物件
PHP 簡介

流程控制

if 判別式
 有三種表示法,只要 expr 為 TRUE(非 0、非空字串、非字串 '0'),則執行下面的 statement(s)。需執行的 statement 只有一個時,可以省略 { }。
 if ( expr ) statement;
 if ( expr ) {
   statement1;
   statement2;
   ......
 }
 if ( expr ) :
   statement1;
   statement2;
   ......
 endif;

else
 與 if 搭配使用。
 if ( expr ) {
   statement1;
   statement2;
   ......
 }
 else {
   statement3;
   statement4;
   ......
 }
      // 需執行的 statement 只有一個時,可以省略 { }
 if ( expr ) :
   statement1;
   statement2;
   ......
 else :
   statement3;
   statement4;
   ......
 endif;

elseif
 與 if 搭配使用。
 if ( expr ) {
   statement1;
   statement2;
   ......
 }
 elseif ( expr ) {
   statement3;
   statement4;
   ......
 }
 [ elseif ... ]
    // 可以接多組 elseif
 else {
   statement5;
   statement6;
   ......
 }
      // 需執行的 statement 只有一個時,可以省略 { }
 if ( expr ) :
   statement1;
   statement2;
   ......
 elseif ( expr ) :
   statement3;
   statement4;
   ......
 [ elseif ... ]
    // 可以接多組 elseif
 else :
   statement5;
   statement6;
   ......
 endif;
例:
 <?
 if ( $a > $b ) {
   echo "a is bigger than b";
 }
 elseif ( $a == $b ) {
   echo "a is equal to b";
 }
 else {
   echo "a is smaller than b";
 }
 ?>

while 迴圈
 只要 expr 為 TRUE,則 statement(s) 可被重複地執行。基於這一點,必須小心控制 expr 的運作,以免發生 expr 恆為 TRUE,而迴圈無窮盡的狀況。
 while ( expr ) {
   statement1;
   statement2;
   ......
 }
      // 需執行的 statement 只有一個時,可以省略 { }
 while ( expr ) :
   statement1;
   statement2;
   ......
 endwhile;
例:
 <?
 $a = 1;
 while ( $a < 10 ) {
   echo $a++;
 }      // 印出 1 ∼ 9
 ?>

do ... while 迴圈
 先無條件執行 statement(s) 一次,接著只要 expr 為 TRUE,則 statement(s) 可被重複地執行。
 do {
   statement1;
   statement2;
   ......
 } while ( expr );
例:
 <?
 $a = 1;
 do {
   echo $a++;
 } while ( $a < 10 );      // 印出 1 ∼ 9
 ?>

for 迴圈
 for ( expr1; expr2; expr3 ) {
   statement1;
   statement2;
   ......
 }
 for ( expr1; expr2; expr3 ) :
   statement1;
   statement2;
   ......
 endfor;
 expr1 為條件的初始值。expr2 為判斷的條件,通常都是用邏輯運算元(Logical Operators)當判斷的條件。expr3 為執行 statement(s) 後要執行的動作,用以改變條件,供下次的迴圈判斷,如加 1。
 與 C 很類似,expr1、expr2、expr3 都可以省略,代表 TRUE。下面四個例子都會印出 1 ∼ 10:
例一:
 <?
 for ( $i=1; $i<=10; $i++ ) {
   print $i;
 }
 ?>
例二,省略 expr2:
 <?
 for ( $i=1; ; $i++ ) {
   if ( $i > 10 ) break;
   print $i;
 }
 ?>
例三,省略所有的 expr:
 <?
 $i = 1;
 for ( ; ; ) {
   if ( $i > 10 ) break;
   print $i;
   $i++;
 }
 ?>
例四,注意 expr3 的寫法,這裡的 print 不能改用 echo 代替,因為 echo 不是函數而是語法:
 <?
 for ( $i=1; $i<=10; print $i, $i++ );
 ?>

break
 break 可以用來跳出目前的迴圈。可以用在 for、foreach、while、do...while、switch中。

continue
 continue 可以即刻停止目前執行迴圈,並略過在 continue 之後的 statement,而回到迴圈的開頭。下面的例子可以印出 1 ∼ 10 之間的偶數:
 <?
 $i = 0;
 while ( $i < 10 ) {
   $i++;
   if ( $i % 2 ) continue;
   echo $i;
 }
 ?>

switch
 switch 通常用來處理複合式的條件判斷,每個子條件,都是 case 指令區段。在必須使用大量 if...elseif...else 判別式時,不妨將它改寫成 switch 判別式。
 <?
 if ( $i == 0 ) {
   print "i equals 0";
 }
 elseif ( $i == 1 ) {
   print "i equals 1";
 }
 elseif ( $i == 2 ) {
   print "i equals 2";
 }
 else {
   print "i is not equal to 0, 1 or 2";
 }

 switch ($i) {
   case 0:
     print "i equals 0";
     break;
   case 1:
     print "i equals 1";
     break;
   case 2:
     print "i equals 2";
     break;
   default:
     print "i is not equal to 0, 1 or 2";
 }
 ?>

初探語法資料型態變數與常數外部變數環境變數運算元引用檔案函數物件