寫法:1、「if(條件){語句區塊;}else if(條件){語句區塊;}else{語句區塊;}」;2、「switch(表達式){case 值1 :語句區塊;break;...case 值n:語句區塊;break;default:語句區塊;}」。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦
在程式開發過程中,經常需要根據不同的情況,執行不同的程式碼,這個時候就需要用到條件判斷,在PHP中,可使用if或switch進行條件判斷,具體應根據實際場景進行選擇對應的條件語句:
##1、if else語句
if else 語句是流程控制中根據條件判斷執行的一種。該語句執行時先對條件進行判斷,然後根據判斷結果做出對應的操作。它又可以細分為三種,分別是if 語句、
if...else 語句、
if...else if...else 語句。
1)、if條件語句
if 語句是流程控制中最簡單的一種。只判斷某個條件是否為真,如果為真就執行特定的語句區塊。語法格式如下:if (判断条件) { 语句块; }如果需要執行的語句區塊包含一條以上的語句,則要使用{ }把它們括起來,表示一個整體;如果要執行的語句只有一條,就可以省略大括號標記。像下面這樣:
if (判断条件) 一条语句;if 語句的執行流程如下圖所示: 【範例】 定義一個數組,使用if 語句判斷這個數字是不是偶數,程式碼如下:
<?php $num = 34; if ($num % 2 == 0) { echo '$num ='.$num.', 是偶数!'; } ?>執行結果如下:
$num =34, 是偶数!
#2)、if...else...條件語句
if 語句只能對判斷結果為真的情況執行操作,這在很多情況下是不夠的,於是就有了if...else 這種形式的語句。與 if 判斷不同,if...else 語句不只對判斷結果為真的情況執行操作,對非真的情況也可以執行對應的操作。 else 語句延伸了 if 語句,可以在 if 語句中表達式的值為 FALSE 時執行對應的語句。另外要注意的是,else 語句是 if 語句的子句,必須和 if 語句一起使用,不能單獨存在。 if...else 語句的語法格式如下:if (判断条件) { 语句块 1; } else { 语句块 2; }在上面的格式中,如果「判斷條件」為真,則執行「語句區塊1」;否則執行「語句塊2”。 「語句區塊 1」和「語句區塊 2」都可以包含多個語句。與if 語句相同的是,如果「語句塊1」和「語句塊2」中都只包含一條語句的話,可以省略大括號{ },如下所示:
if (判断条件) 语句块 1; else 语句块 2;if...else語句的執行流程如下圖所示: 範例】使用rand() 函數產生一個隨機數$num,然後判斷這個隨機數是偶數還是奇數,程式碼如下所示:
<?php $num = rand(1,31); //生成一个 1~31 之间的随机数 if ($num % 2 == 0) { echo '$num ='.$num.', 是偶数!'; } else { echo '$num ='.$num.', 是奇数!'; } ?>執行結果如下:
$num =27, 是奇数!
3)、if...elseif...else...條件語句
# else if 語句和else 語句一樣,它延伸了if 語句,else if 語句會根據不同的表達式來決定要執行哪個語句區塊。 在 PHP 中也可以將 else if 這兩個關鍵字合併在一起(如 elseif)來使用。 else if 語句的語法格式如下所示:if (判断条件 1) { 语句块 1; } else if (判断条件 2) { 语句块 2; } else if (判断条件 3) { 语句块 3; } ...... else if (判断条件 n) { 语句块 n; } else{ 语句块 n+1; }在上面的else if 的語法中,如果第一個「判斷條件1」為TRUE,則執行「語句區塊1」語句;如果第二個「判斷條件2」為TRUE,則執行「語句塊2」語句;以此類推。如果表達式的條件都不為 TRUE,則執行 else 子句中的「語句區塊 n 1」語句,當然最後的 else 語句也可以省略。 在 else if 語句中同時只能有一個表達式為 TRUE,即在 else if 語句中只能有一個語句區塊被執行。如果有多個表達式的值為 TRUE 時,只會執行第一個表達式所對應的語句區塊。 if...else if...else 語句的執行流程如下圖所示: #【範例】根據成績判斷成績的優、良、中、差級別,程式碼如下:
<?php $score = 89; if ($score > 90) { echo '成绩的级别为:优!'; } else if ($score > 70) { echo '成绩的级别为:良!'; } else if ($score > 60) { echo '成绩的级别为:中!'; } else { echo '成绩的级别为:差!'; } ?>運行結果如下:
成绩的级别为:良!
2、switch...case...條件語句
switch 語句和if...else if...else 語句相似,也是一種分支結構,與if...else if...else 語句相比switch 語句更簡潔明了。 switch 語句由一個表達式和多個 case 標籤組成,case 標籤後面跟著一個程式碼區塊,case 標籤作為這個程式碼區塊的標識。 switch 語句的語法格式如下:switch(表达式){ case 值 1: 语句块 1; break; case 值 2: 语句块 2; break; ... ... case 值 n: 语句块 n; break; default: 语句块 n+1; }
switch 语句根据表达式的值,依次与 case 中的值进行比较,如果不相等,继续查找下一个 case;如果相等,就会执行对应的语句,直到 switch 语句结束或遇到 break 为止。
一般来说,switch 语句最终都有一个默认值 default,如果在前面的 case 中没有找到相符的条件,则执行默认语句,和 else 语句类似。
switch 语句的执行流程如下图所示:
在使用 switch 语句时应该注意以下几点:
和 if 语句不同的是,switch 语句后面表达式的数据类型只能是整型或字符串,不能是 bool 型。通常这个表达式是一个变量名称,虽然 PHP 是弱类型语言,在 switch 后面表达式的变量可以是任意类型数据,但为了保证匹配执行的准确性,最好只使用整型或字符串中的一种类型。
和 if 语句不同的是,switch 语句后面的花括号是必须有的。
case 语句的个数没有规定,可以无限增加。但 case 标签和 case 标签后面的值之间应该有一个空格,值后面必须有一个冒号,这是语法的一部分。
switch 匹配完成以后,将依次逐条执行匹配的分支模块中的语句,直到 switch 结构结束或者遇到了 break 语句才停止执行。所以,如果一个分支语句的后面没有写上 break 语句,程序将会继续执行下一个分支语句的内容。
与 if 语句中的 else 类似,switch 语句中 default 标签直接在后面加上一个冒号,看似没有条件,其实是有条件的,条件就是“表达式”的值不能与前面任何一个 case 标签后的值相等,这时才执行 default 分支中的语句。default 标签和 if 中的 else 子句一样,它不是 switch 语句中必需的,可以省略。
【示例】使用 date() 函数获取当前星期的英文缩写,根据缩写打印今天是星期几,代码如下所示:
<?php $week = date('D'); switch($week){ case 'Mon': echo '星期一'; break; case 'Tue': echo '星期二'; break; case 'Wed': echo '星期三'; break; case 'Thu': echo '星期四'; break; case 'Fri': echo '星期五'; break; case 'Sat': echo '星期六'; break; case 'Sun': echo '星期日'; break; } ?>
运行结果如下:
星期四
推荐学习:《PHP视频教程》
以上是php判斷語句怎麼寫的詳細內容。更多資訊請關注PHP中文網其他相關文章!