在本教程中,您將學(xué)習(xí)如何使用PHP中的if ... else ... elseif語句編寫決策代碼。
像大多數(shù)編程語言一樣,PHP還允許您編寫代碼,這些代碼在運行時根據(jù)邏輯或比較測試條件的結(jié)果執(zhí)行不同的操作。 這意味著,您可以以表達式的形式創(chuàng)建測試條件,該表達式的計算結(jié)果為true或false,并根據(jù)這些結(jié)果可以執(zhí)行某些操作。
PHP中有一些語句可用于制定決策:
if 語句
if ... else 語句
if...elseif..else 語句
switch...case 語句
我們將在接下來的部分中探討每個語句。
僅當指定條件的值為true時,if語句才用于執(zhí)行代碼塊。這是最簡單的PHP條件語句,可以這樣寫:
if(condition){
//要執(zhí)行的代碼
}下面的示例將輸出“周末愉快!” 如果今天是星期五:
<?php
$d = date("D");
if($d == "Fri"){
echo "周末愉快!";
}
?>測試看看?/?您可以通過在if語句中添加else語句來提供代替選擇,從而增強決策過程。 如果指定條件的條件為True,則if ... else語句使您可以執(zhí)行一個代碼塊,如果條件為False,則可以執(zhí)行另一塊代碼。 可以這樣寫:
if(condition){
//條件為true時執(zhí)行的代碼
} else {
//條件為false時執(zhí)行的代碼
}下面的示例將輸出“周末愉快!” 如果當前日期是星期五,則將輸出“祝您愉快!”
<?php
$d = date("D");
if($d == "Fri"){
echo "周末愉快!";
} else{
echo "祝您愉快!";
}
?>測試看看?/?if ... elseif ... else特殊語句,用于組合多個if ... else語句。
if(condition1){
//如果condition1為true時將執(zhí)行的代碼
} elseif(condition2){
//如果condition1為false且condition2為true時將執(zhí)行的代碼
} else {
//如果condition1和condition2都將執(zhí)行的代碼是錯誤的
}下面的示例將輸出“周末愉快!” 如果當前日期是星期五,并且“祝您星期日愉快!” 如果當前日期是星期天,否則將輸出“祝您愉快!”
<?php
$d = date("D");
if($d == "Fri"){
echo "周末愉快!";
} elseif($d == "Sun"){
echo "祝您星期日愉快!";
} else{
echo "祝您愉快!";
}
?>測試看看?/?在下一章中,您將了解有關(guān)PHP switch-case語句的信息。
三元操作符提供了一種寫 if... else 語句的簡便方法。三元運算符用問號(?)表示它有三個操作數(shù): 要檢查的條件、條件為真的結(jié)果和條件為假的結(jié)果。
要了解此運算符的工作方式,請看以下示例:
<?php
$age = 15;
if($age < 18){
echo '兒童'; //如果年齡小于18歲,則顯示兒童
} else{
echo '成人'; //如果年齡大于或等于18歲,則顯示成人
}
?>測試看看?/?使用三元運算符,可以以更緊湊的方式編寫相同的代碼:
<?php $age = 15; echo ($age < 18) ? '兒童' : '成人'; ?>測試看看?/?
上例中的三元運算符如果條件的計算結(jié)果為true(即$age小于18),則選擇冒號左側(cè)的值(即“兒童”),如果條件的計算結(jié)果為false,則選擇冒號右側(cè)的值(即“成人”)。
提示:使用三元運算符編寫的代碼可能難以閱讀。但是,它提供了一種編寫緊湊的if-else語句的好方法。
PHP 7引入了一個新的空合并運算符(??),您可以將其用作簡寫形式,在其中需要結(jié)合使用三元運算符和isset()函數(shù)。
為了更好地理解這一點,請看以下代碼行。它獲取$_GET['name']的值,如果它不存在或為NULL,則返回'anonymous'。
<?php //使用三元運算符(?:) $name = isset($_GET['name']) ? $_GET['name'] : 'anonymous'; echo $name; ?>測試看看?/?
使用空合并運算符,可以將相同的代碼編寫為:
<?php //使用空合并運算符(??) $name = $_GET['name'] ?? 'anonymous'; echo $name; ?>測試看看?/?
正如您看到的,后面的語法更加緊湊和易于編寫。