260 likes | 382 Views
PHP. 程式流程控制結構. 條件述句. if if....else if....elseif.....else switch 流程控制的替代語法. if ( 條件 ) { 條件為真時執行此 php 語法; }. <? $a = 10; $b=5; if ( $a > $b ){ echo “$a > $b <br>"; } ?>. If 條件述句. 語法:. 範例:. if ( 條件 ) { 條件 True 時執行的語法; } else { 條件 False 時執行的語法; }.
E N D
PHP 程式流程控制結構
條件述句 if if....else if....elseif.....else switch 流程控制的替代語法
if ( 條件 ) { 條件為真時執行此php語法; } • <? • $a = 10; • $b=5; • if ( $a > $b ){ • echo “$a > $b <br>"; • } • ?> If 條件述句 語法: 範例:
if ( 條件 ) • { • 條件True時執行的語法; • } else { • 條件False時執行的語法; • } if .... Else 條件述句多條件式判斷 語法:
<? • $a = “123”;if ( $a < 100 ){ //自動型態轉換 • echo “A 小於 100 ”; • } else { • echo “A 大於 100 ”; • } • ?> if .... Else 條件述句 範例: 範例11-4, 11-5
<? if (empty($_GET["sex"])) { ?> <form action=<?php echo $_SERVER["PHP_SELF"] ?> method="get"> 姓名:<input type=text name=n><br> 性別:<br> <input type=radio name=sex value=1>男<br> <input type=radio name=sex value=2>女<br> <input type=submit value="送出"> <input type=reset value="重填"> </form> <? }else{ echo $_GET["n"]; if ($_GET[“sex”]==1){//巢狀if echo "先生您好"; }else{ echo "小姐您好"; } } ?> if .... Else 條件述句 範例11-5:
<html> <title>判斷敘述</title> <body> <?php if (preg_match("/MSIE/",$_SERVER["HTTP_USER_AGENT"])){ echo "你的瀏覽器是 IE" ; }else{ echo "你的瀏覽器不是 IE" ; } ?> </body> </html> if .... Else 條件述句 範例11-6: http://tw2.php.net/preg_match
if ( 條件一 ) { • 條件一成立執行; • }elseif (條件二) { • 條件二成立執行; • } else { • 條件一二都不成立執行; • } if .... elseif .... Else 條件述句 語法:
<? • $a = "123"; • if ( $a < 100 ){ • echo “A 小於 100 ”; • } elseif ( $a >= 100 AND $a < 200) { • echo “A 大於 100 ,小於 200”; • } else { • echo “A 大於 200”; • } • ?> if .... elseif .... Else 條件述句 範例:
Switch 條件述句 很多場合下需要把同一個變數(或運算式)與很多不同的值比較,並根據它等於哪個值來執行不同的代碼,這才是 switch 條件敘述的用途。
switch ( switch條件 ) { • case ‘值1’ : • 敘述1; • break; • case ‘值2’ : • 敘述2; • break; • ...... • default : • 敘述n; • break; • } Switch 條件述句 語法:
用 if 的寫法 用 switch 的寫法 條件述句 範例: • <? • $a = 2; • if ( $a == 1 ) { • echo “冠軍”; } • if ( $a == 2 ) { • echo “亞軍”; } • if ( $a == 3 ) { • echo “季軍”; } • ?> • <? • $a = 2; • switch ($a) { • case '1': • echo “冠軍”; • break; • case '2': • echo “亞軍”; • break; • case '3': • echo “季軍”; • break; • } • ?>
Switch 條件述句 為避免錯誤,理解 switch 是怎樣執行的非常重要。switch 語句一行接一行地執行。 當一個 case 語句中的值和 switch 運算式的值匹配時 PHP 才開始執行語句,直到 switch 的程式段結束或者遇到第一個break語句為止。 如果不在 case 的語句段最後寫上 break 的話,PHP 將繼續執行下一個 case 中的語句段。
<? • $a = 2; • switch ($a) { • case '1': • echo “冠軍”; • case '2': • echo “亞軍”; • case '3': • echo “季軍”; • } • ?> Switch 條件述句 依 $a 的資料是 2 ,應該執行“亞軍” ,但因為沒有 break 指令來中斷,所以會循序執行下面程式,執行結果就會不如預期。 範例11-11
流程控制的替代語法 PHP 提供了一些流程控制的替代語法。 替代語法的基本形式是把左邊大括號「﹛」換成冒號「:」,把右邊大括號「﹜」分別換成 「endif;」、「endwhile;」、「endfor;」、「endforeach; 」以及 「endswitch;」
原來的寫法 替代語法 • <? • $a = "123"; • if ( $a < 100 ){ • echo “A 小於 100 ”; • } elseif ( $a >= 100 OR $a < 200) { • echo “A 大於 100 ,小於 200”; • } else { • echo “A 大於 200”; • } • ?> • <? • $a = "123"; • if ( $a < 100 ) : • echo “A 小於 100 ”; • elseif ( $a >= 100 OR $a < 200) : • echo “A 大於 100 ,小於 200”; • else : • echo “A 大於 200”; • endif; • ?> 流程控制的替代語法 p. 11-18
PHP 迴圈
迴圈 while do...while For Foreach break continue
While 迴圈 • while ( 條件 ) { • 執行直到條件不成立; • } 只要條件一直成立(真或true)時,就會一直重覆執行敘述的程式。
While 迴圈 範例: • 注意避免無窮迴圈 • 前判斷或判斷在前
Do … While 迴圈 語法: 範例: 判斷在後 while 與 do .... while的差別是不管條件是否符合「do .... while」至少先執行一次。 範例12-8 12-9
FOR迴圈 for 迴圈是 PHP 中較複雜的迴圈結構。它和 C 語言的for相似,語法為: 範例: 範例12-4 , 12-5(巢狀迴圈)
FOREACH迴圈 for each迴圈是專門使用在陣列操作(不需要知道陣列大小),語法為: 範例12-6 , 12-7
BREAK • Break: 結束目前 for,foreach,while,do..while 或者 switch 結構的執行(強迫離開)。 • break 可以接受一個可選的數字參數來決定跳出幾重迴圈。 • 語法:break n; 範例12-11
CONTINUE • continue 在迴圈結構用來跳過本次迴圈中剩餘的程式碼,並開始執行下一次迴圈。 • continue 接受一個可選的數字參數來決定跳過幾重迴圈到迴圈結尾。 • 語法:continue n; 範例12-12
PHP 作業一 p.12-27 題目2與題目6