if($a === "b" || $a === "c" || $a === "d")
echo $a;
else
echo 'a is not........';
有沒有一種方法可以在不重複$a
的情況下每次寫入?如何縮短這個「if」,我每次都檢查同一個變量?
if($a === "b" || $a === "c" || $a === "d")
echo $a;
else
echo 'a is not........';
有沒有一種方法可以在不重複$a
的情況下每次寫入?如何縮短這個「if」,我每次都檢查同一個變量?
你沒有檢查任何東西。你在做任務,因爲你使用的是=
而不是==
。
你可以做很少的事來優化這段代碼。寫出來可能很乏味,但在執行方面並不糟糕。不要混淆「更短」的代碼和「更高效」。例如
if (!in_array($a, array('a', 'b', 'c')) { ... }
是更少的代碼。但它幾乎肯定會執行WORSE比你的代碼。爲什麼?因爲現在你正在讓PHP在運行中創建一個數組。然後,它必須在內部遍歷該數組,並逐個比較每個值與$ a,正如您的「繁瑣」if()所做的那樣。所以你所做的只是減少寫入的代碼量,但是因爲你已經添加了整個「創建數組」的需求,所以執行時間增加了。
從PHP手冊:in_array()
if (in_array($a, array("b","c","d"))) {
echo $a;
} else{
echo 'a is not........';
}
我傾向於使用switch
代替。我覺得它更可讀。
switch ($a) {
case 'b':
case 'c':
case 'd':
echo $a;
break;
default:
echo 'a is not........';
break;
}
這實際上在'if elseif else'中有用 –
我的意思===,對不起 – user3002686
不應'''被刪除? –
@ Mr.Alien:取決於如何安排實際的if()內容,但是,沒有必要 –