Download presentation
Presentation is loading. Please wait.
1
PHP程式設計 五、程式流程控制結構 建國科技大學 資訊管理學系 饒瑞佶
2
PHP 程式流程控制結構
3
條件述句 if if....else if....elseif.....else switch 流程控制的替代語法
4
If 條件述句 語法: if ( 條件 ) { 條件為真時執行此php語法; } 範例: <? $a = 10; $b=5;
if ( $a > $b ){ echo “$a > $b <br>"; } ?>
5
if .... Else 條件述句 多條件式判斷 語法: if ( 條件 ) { 條件True時執行的語法; } else {
條件False時執行的語法; }
6
if .... Else 條件述句 範例: <? $a = “123”; if ( $a < 100 ){ //自動型態轉換
echo “A 小於 100 ”; } else { echo “A 大於 100 ”; } ?> 範例11-4, 11-5
7
if .... Else 條件述句 範例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 "先生您好"; echo "小姐您好"; } 範例11-5:
8
if .... Else 條件述句 範例11-6: http://tw2.php.net/preg_match <html>
<title>判斷敘述</title> <body> <?php if (preg_match("/MSIE/",$_SERVER["HTTP_USER_AGENT"])){ echo "你的瀏覽器是 IE" ; }else{ echo "你的瀏覽器不是 IE" ; } ?> </body> </html>
9
if .... elseif .... Else 條件述句 語法: if ( 條件一 ) { 條件一成立執行;
條件二成立執行; } else { 條件一二都不成立執行; }
10
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”; } ?>
11
Switch 條件述句 很多場合下需要把同一個變數(或運算式)與很多不同的值比較,並根據它等於哪個值來執行不同的代碼,這才是 switch 條件敘述的用途。
12
Switch 條件述句 語法: switch ( switch條件 ) { case ‘值1’ : 敘述1; break;
敘述2; ...... default : 敘述n; }
13
條件述句 範例: 用 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 “亞軍”; case '3': echo “季軍”; } ?>
14
Switch 條件述句 為避免錯誤,理解 switch 是怎樣執行的非常重要。switch 語句一行接一行地執行。
當一個 case 語句中的值和 switch 運算式的值匹配時 PHP 才開始執行語句,直到 switch 的程式段結束或者遇到第一個 break 語句為止。 如果不在 case 的語句段最後寫上 break 的話,PHP 將繼續執行下一個 case 中的語句段。
15
Switch 條件述句 <? $a = 2; switch ($a) {
case '1': echo “冠軍”; case '2': echo “亞軍”; case '3': echo “季軍”; } ?> 依 $a 的資料是 2 ,應該執行“亞軍” ,但因為沒有 break 指令來中斷,所以會循序執行下面程式,執行結果就會不如預期。 範例11-11
16
流程控制的替代語法 PHP 提供了一些流程控制的替代語法。
替代語法的基本形式是把左邊大括號「﹛」換成冒號「:」,把右邊大括號「﹜」分別換成 「endif;」、「endwhile;」、「endfor;」、「endforeach; 」以及 「endswitch;」
17
流程控制的替代語法 原來的寫法 替代語法 p. 11-18 <? $a = "123"; if ( $a < 100 ){
echo “A 小於 100 ”; } elseif ( $a >= 100 OR $a < 200) { echo “A 大於 100 ,小於 200”; } else { echo “A 大於 200”; } ?> if ( $a < 100 ) : elseif ( $a >= 100 OR $a < 200) : else : endif;
18
PHP 迴圈
19
迴圈 while do...while For Foreach break continue
20
While 迴圈 while 迴圈是 PHP 中最簡單的迴圈類型。它和 C 語言中的 while 一樣。while 語句的基本語法:
執行直到條件不成立; } 只要條件一直成立(真或true)時,就會一直重覆執行敘述的程式。
21
While 迴圈 注意避免無窮迴圈 前判斷或判斷在前 <? $a = 1; while ( $a<10 ) {
範例: <? $a = 1; while ( $a<10 ) { echo "$a <BR>"; $a++; } ?> 注意避免無窮迴圈 前判斷或判斷在前
22
Do … While 迴圈 do { } while ( 條件 ) 語法: 執行直到條件不成立; <? $a = 1; do {
範例: 判斷在後 <? $a = 1; do { echo "$a <BR>"; $a++; } while ( $a<10 ) ?> while 與 do .... while的差別是不管條件是否符合「do .... while」至少先執行一次。 範例12-8 12-9
23
FOR 迴圈 for ( 條件初始值 ; 條件判斷式 ; 條件改變式 ) { }
for 迴圈是 PHP 中較複雜的迴圈結構。它和 C 語言的for相似,語法為: for ( 條件初始值 ; 條件判斷式 ; 條件改變式 ) { 執行直到條件判斷式不成立; } 範例: <? for ( $a = 1; $a < 10 ; $a++ ) { //單行{}可有可無 echo "$a <BR>"; } ?> 範例12-4 , 12-5(巢狀迴圈)
24
FOREACH迴圈 foreach ( 陣列名稱 as $value) { }
要執行的程式碼; } foreach (陣列名稱 as &key => $value) { 要執行的程式碼; } 範例12-6 , 12-7
25
BREAK Break: 結束目前 for,foreach,while,do..while 或者 switch 結構的執行(強迫離開)。
語法:break n; 範例12-11
26
CONTINUE continue 在迴圈結構用來跳過本次迴圈中剩餘的程式碼,並開始執行下一次迴圈。
語法:continue n; 範例12-12
27
PHP 作業一 p.12-27 題目2與題目6
28
自動跳頁 header("Refresh:0;url=xxxxxxxxxx"]);
echo "<meta http-equiv='refresh' content='0; url=xxxxxx'>";
Similar presentations