- 1月 05 週二 201022:19
不是 B 或 C 的筆記
狀況大概是這樣: 一個字串變數的可能值是 ABCD...YZ 26個英文大寫字母。是 ADE...YZ 的時候,執行 if 裡的條件;是 B 或 C 的時候,要執行 else 裡的條件式。
一開始的想法是寫成不是 B 或 C 的時候去找 if :
$a = "A";
if ( !( ($a == "B") || ($a == "C") ) ):
echo "OK";
else:
echo "XX";
endif;
到這邊沒問題。後來想要把 ! 丟進去,所以變成:
$a = "A";
if ( ($a != "B") && ($a != "C") ):
echo "OK";
else:
echo "XX";
endif;
到這裡也沒問題。後來想說那能不能這樣子寫:
$a = "A";
if ( $a != ("B" || "C") ):
echo "OK";
else:
echo "XX";
endif;
結果就爆炸了。
然後就用了 var_dump() 來幫助自己理解問題在哪裡。找了半天發現問題在於 ("B"||"C") 的結果: bool(true) 。XDD
最後重新看一遍,發現問題在於一開始的想法:「不是 B 或 C 」,其實是「不是 B 也不是 C 」…
Tags: php if else not or var_dump 不是 或 也不是
switch ($a) { case 'A': // ... break; case 'B': // ... break; default: // ... break; }
哈哈...想不到妳也會放這種..邏輯上的錯...
沒學過的話犯這些錯很正常吧 @_@?