在php中條件陳述式主要用到if else與if elseif及swicth case之類的語句了,這兩語句是用到最多的。
一、if…else語句
if...else 語句
在條件成立時執行一塊代碼,條件不成立時執行另一塊代碼
文法:
1、簡單條件
if(條件){ …… } else{ …… }
<?phpif (date("D") == "Sat") echo " 提醒你周末了,狂歡去";?>
範例:本例的執行部分有三行,不可省略大括弧。
<?phpif (file_exists("/usr/local/lib/php3.ini")) { echo "以下是 PHP3 的設定檔<p><pre>n"; readfile("/usr/local/lib/php3.ini"); echo "</pre>n";}?>
2、複雜條件
elseif 語句
與 if...else 配合使用,在若干條件之一成立時執行一個代碼塊
if(條件){ …… } elseif(條件){ …… } else{ ……}
範例:上面的例子來修改成更完整的處理。其中的 else 由於只有一行執行的指令,因此不用加上大括弧。
<?php$f="/usr/local/lib/php3.ini";if (file_exists($f)) { echo "以下是 PHP3 的設定檔<p><pre>n"; readfile($f); echo "</pre>n";} else echo "很抱歉,找不到 $f";?>
第三種就是遞迴的 if..else 迴圈,通常用在多種決策判斷時。它將數個 if..else 拿來合并運用處理。
直接看下面的例子
<?phpif ($a > $b) { echo "a 比 b 大";} elseif ($a == $b) { echo "a 等於 b";} else { echo "a 比 b 小";}?>
上例只用二層的 if..else 迴圈,用來比較 a 和 b 兩個變數。實際要使用這種遞迴 if..else 迴圈時,請小心使用,因為太多層的迴圈容易使設計的邏輯出問題,或者少打了大括弧等,都會造成程式出現莫名其妙的問題。
二、Switch語句
1 文法:
switch(運算式){ case 值1: 語句 break; case 值2: 語句 break; default: 沒有匹配的值時執行的語句}
工作原理:
1.對錶達式(通常是變數)進行一次計算
2.把運算式的值與結構中 case 的值進行比較
3.如果存在匹配,則執行與 case 關聯的代碼
4.代碼執行後,break 語句阻止代碼跳入下一個 case 中繼續執行
5.如果沒有 case 為真,則使用 default 語句
利用switch實現一個頁面多用途,首先建立test.php頁面:
<?phpecho "<a href='solution.php?action=add'>增加</a><br><br>";echo "<a href='solution.php?action=del'>刪除</a><br><br>";echo "<a href='solution.php?action=search'>尋找</a><br><br>";echo "<a href='solution.php?action=update'>更新</a>";?>
接著,讓我們看看solution.php是如何處理這四種操作的。
<?php$action=$_GET["action"];switch ($action){ case "add": echo "現在可以實現增加功能!"; break; case "del": echo "現在可以實現刪除功能!"; break; case "search": echo "現在可以實現查詢功能!"; break; case "update": echo "現在可以實現更新功能!"; break;}?>
很簡單,我們首先接收到action的值,運用switch語句根據action值的不同分別賦予它相應的操作。