[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;
?>
沒有留言:
張貼留言