[If判斷敘述]
if敘述是具有判斷力的敘述(也是最簡單、常用的判斷敘述), 它會依照訂定的條件執行相對的程式敘述, 當訂定的條件式成立後(評估值為True), 才會執行if之後的敘述, 反之。當訂定的條件式不成立(評估值為False), 則if之後的敘述將不會被執行。if (條件式) 單行敘述;它的意義是:如果『條件式』成立(評估值為True), 就執行『條件式』之後的『單行敘述』, 不然的話就跳過『條件式』之後的『單行敘述』, 繼續執行下面的程式敘述。 例如網站在下午六點鐘到午夜12點鐘不開放, 如果瀏覽者在這段時間進入網站, 則在網頁中顯示『明日請早!』。
<?php if (date("H")>18); echo ("明天請早!"); ?>如果在『條件式』成立(評估值為True)後要撰寫多個敘述時(條件成立後要做很多事), 可以使用結構化的寫法, 就是使用『{ }』把這些敘述(敘述區塊)包括在其中, 其格式如下:
if (條件式) { 程式敘述區塊; }它的意義是:如果『條件式』成立(評估值為True), 就執行『{』之後的『程式敘述區塊』, 不然的話就跳過『{』之後的『程式敘述區塊』, 從『}』之後繼續執行下面的程式敘述。
介於『{ }』之間的所有敘述就稱它為『敘述區塊』, 而在撰寫敘述區塊的時候, 請將敘述區塊退後幾格, 這樣將使程式更容易閱讀。
流程說明: 例如網站在下午六點鐘到午夜12點鐘不開放, 如果瀏覽者在這段時間進入網站, 則在網頁中顯示『明日請早!』與瀏覽者的進入時間。
流程說明: 例如網站在下午六點鐘到午夜12點鐘不開放, 如果瀏覽者在這段時間進入網站, 則在網頁中顯示『明日請早!』與瀏覽者的進入時間。
<?php If (date("H")>=18) { echo ("明天請早!<br>"); echo date("G 時 i 分 s 秒 A"); } ?>如果在『條件式』成立(評估值為True)後要撰寫多個敘述時(條件成立後要做很多事), 除了可以使用『{ }』把這些敘述(敘述區塊)包括在其中外, 亦可放棄使用『{ }』來包括敘述, 改用『endif;』來做, 格式如下:
if (條件式) : … 程式敘述區塊; … endif;它的意義是:如果『條件式』成立(評估值為True), 就執行『:』之後的『程式敘述區塊』, 不然的話就跳過『:』之後的『程式敘述區塊』, 從『endif;』之後繼續執行下面的程式敘述。
if (條件式) 程式敘述; else 程式敘述;例如分數大於等於60分則顯示『及格』, 反之則顯示『不及格』:
<?php if ($_POST["score"]>=60) echo "您的分數". $_POST["score"] . "分,及格"; else echo "您的分數". $_POST["score"] . "分,不及格"; ?>if-else敘述除了上述說明的正規用法外, 也可以使用『條件運算元』的方式來做:
(條件式)? 程式敘述A : 程式敘述B;它的意義是:如果『條件式』成立(評估值為True), 就執行『?』之後的『程式敘述A』, 不然的話就跳過『程式敘述A』, 執行『:』之後的『程式敘述B』。 例如:
<?php $score=60; ($score>=60)? $ans="及格" : $ans="不及格"; echo $ans; ?>等同
<?php $score=60; $ans=($score>=60)? "及格" : "不及格"; echo $ans; ?>上例若改為if-else敘述則為:
<?php $score=60; if ($score>=60) $ans="及格"; else $ans="不及格"; echo $ans; ?>如果在條件式後面(條件式成立時)要撰寫多個敘述, 同時, 在else後面(條件式不成立時)也要撰寫多個敘述時, 我們可以使用結構化的寫法, 就是使用『{ }』把這些敘述(敘述區塊)包括在其中, 執行敘述區塊的if-else格式如下:
if (條件式) { 敘述區塊(條件式成立時); } else { 敘述區塊(條件式不成立時); }流程說明: 例如網站在下午六點鐘到午夜12點鐘不開放, 如果瀏覽者在這段時間進入網站, 則在網頁中顯示『明日請早!』, 瀏覽者在這段時間之外進入網站, 則在網頁中顯示『歡迎光臨!』。
<?php if (date("H")>=18) { echo ("明天請早!<br>"); echo date("G 時 i 分 s 秒 A"); } else { echo ("歡迎光臨!<br>"); echo date("G 時 i 分 s 秒 A"); } ?>
if (條件式1) { 敘述區塊; } else if (條件式2) { 敘述區塊; } . . else if (條件式n) { 敘述區塊; }
[多路徑選擇的switch敘述]
switch (評估值) { case條件值1: 敘述區塊1; break; case 條件值2: 敘述區塊2; break; . . case 條件值n: 敘述區塊n; break; default: 敘述區塊n+1; }上列的格式意義是:當評估值符合條件值1時就執行程式區塊1, 評估值符合條件值2時就執行程式區塊2…, 評估值符合條件值n時就執行程式區塊n, 如果任何條件都不符合則執行程式區塊n+1。
<?php switch ($_POST["color"]) { case "y": echo "<body bgcolor=yellow>"; break; case "g": echo "<body bgcolor=green>"; break; case "b": echo "<body bgcolor=blue>"; break; } ?>switch敘述中的條件值, 並不限定每個case內都要有敘述, 還可以是一個範圍的資料, 例如:讓瀏覽者輸入月份, 按下確定按鈕後, 告訴他該月份是哪一個季節:
<?php switch ($_POST["moon"]) { case 1: case 2: case 3: echo "春天"; break; case 4: case 5: case 6: echo "夏天"; break; case 7: case 8: case 9: echo "秋天"; break; case 10: case 11: case 12: echo "冬天"; break; default: echo "錯誤"; } ?>在switch case敘述區段中, 除了可以使用『{ }』把這些敘述(敘述區塊)包括在其中外, 亦可放棄使用『{ }』來包括敘述, 改用『endswitch;』來做, 格式如下:
switch (評估值): case條件值1: 敘述區塊1; break; case 條件值2: 敘述區塊2; break; . . case 條件值n: 敘述區塊n; break; default: 敘述區塊n+1; end switch;在switch(評估值)與endswitch;的作法中, 在switch(評估值)之後必須加上『:』冒號代表敘述區段的起始, 而敘述區塊中的每個單行敘述結尾同樣必須加上『;』, 例如
<?php switch ($_POST["color"]): case "y": echo "<body bgcolor=yellow>"; break; case "g": echo "<body bgcolor=green>"; break; default: echo "<body bgcolor=blue>"; end switch; ?>
沒有留言:
張貼留言