【PHP】10. 比較與邏輯運算子
【PHP】10. 比較與邏輯運算子
此文章也有影片介紹,可以搭配影片一起學習!
01. 比較與邏輯運算子 (所屬課程)
比較運算子
上過上一堂布林值與條件判斷課程以後,我們就可以用if-else的方法進行比較,
那麼,我們現在可以宣告一個變數$number = 10,寫法如下:
條件:$number = 10;
條件成立:echo " True!!!! <br />";
條件不成立:echo " False… <br />";
範例:
$number = 10;
if ( $number ){
echo"True!!!! <br />";
}else{
echo "False… <br />";
}
?>
輸出結果如下:
那麼,我們想要用if else這個方式來做比較的話,可以用下列方法,
1. 大於 >
範例:
$number = 10;
if ($number > 9){
echo "True!!!! <br />";
}else{
echo "False… <br />";
}
?>
輸出結果如下:
因為10比9大,所以結果是True!!!
2. 小於 <
範例:
$number = 10;
if ($number < 9){
echo "True!!!! <br />";
} else{
echo "False… <br />";
}
?>
輸出結果如下:
因為10沒有比9小,所以結果是False...
3. 等於==
範例:
$number = 10;
if ($number == 9){
echo "True!!!! <br />";
}else{
echo "False… <br />";
}
?>
輸出結果如下:
因為10不等於9,所以結果是False...
[補充1] 如果條件寫成number= 9而不是number== 9,輸出結果會是如何?
$number = 10;
if ($number = 9){
echo "True!!!! <br />";
}else{
echo "False… <br />";
}
?>
輸出結果如下:
由於$number = 9是指$number被賦予9,而9會被轉換型別為true,而條件成立時輸出True!!!!
[補充2] 字串比較
PHP也可以比較字串
範例:
$string = "你好";
if ($string == "你好"){
echo "True!!!! <br />";
}else{
echo "False… <br />”;
}
?>
輸出結果如下:
由於PHP程式語言會自行轉換型別,例如我們想知道字串$string = "10"(字串10)是否等於$number = 10(數字10) 時,我們利用$string == $number來作為條件比較,
$number = 10; // 數字
$string = "10"; // 字串
if ($string == $number){
echo "True!!!! <br />";
}else{
echo "False… <br />";
}
?>
輸出結果如下:
結果答案是相等的。由此可知,PHP程式語言會自行轉換型別,那如果我們不想被轉換型別時該怎麼辦呢?
我們可以使用另一個方式
4. 嚴謹等於 ===
$number = 10;
$string = "10";
if($string === $number){
echo "True!!!! <br />";
}else{
echo "False… <br />";
}
?>
輸出結果如下:
因為在嚴謹等於的狀態下,10不等於"10",所以結果是False...
5. != 不等於 (也可以寫成 <> 但較少使用)
範例:
$number = 10;
if( $number != 9 ){
echo "True!!!! <br />";
}else{
echo "False… <br />";
}
?>
輸出結果如下:
! 表示相反的意思, != 代表不等於, 10不等於9, 所以結果是 True!!!!
6.!== 完全不等於(連型態一起比較)
$number = 10;
$string = "10";
if( $string !== $number ){
echo "True!!!! <br />";
}else{
echo "False… <br />";
}
?>
輸出結果如下:
因為在嚴謹不等於的狀態下,10不等於"10",所以結果是 True!!!!
7. >=大於等於
$number = 10;
if ( $number >= 10 ){
echo "True!!!! <br/>";
}else{
echo "False… <br />";
}
?>
輸出結果如下:
8. <=小於等於
if ( $number <= 10 ){
echo "True!!!! <br/>";
}else{
echo "Fase... <br />"
}
?>
輸出結果如下:
邏輯運算子&& || XOR
在真實的情況下,我們常會出現兩個或更多的條件需要判斷,例如出門必需攜帶100元以上才能滿足一天的消費,而在便利商店裡的消費必須控制在50元以下,如果今天你有200元,想買便利商店裡10元的產品,利用之前學過的語法,我們可以這樣寫:
$money = 200;
$goodPrice = 10;
if ($money > 100){
if ( $goodPrice < 50){
echo "買下來 <br />";
}
}
?>
輸出結果如下:
我們也可以用邏輯運算子使得程式碼變得更精簡,
條件的括號可加可不加,
輸出結果如下:
也就是說,我們可以用邏輯運算子(&& || XOR)符號,讓兩個條件和寫在一起。
輸出結果如下 :
echo (true and true); //條件成立,輸出結果→1
echo (true and false); //條件不成立,輸出結果→ (什麼都沒有)
echo (true && true); //條件成立,輸出結果→1
echo (true or true); //條件成立,輸出結果→1
echo (true or false); //條件成立,輸出結果→1
echo (false or false); //條件不成立,輸出結果→ (什麼都沒有)
echo (false || false); //條件不成立,輸出結果→ (什麼都沒有)
echo (true xor true); //條件不成立,輸出結果→ (什麼都沒有)
echo (true xor false); //條件成立,輸出結果→1
echo (false xor true); //條件成立,輸出結果→1
echo (false xor false); //條件不成立,輸出結果→ (什麼都沒有)
?>
如果覺得有點困難的話,可以參考以下整理版本:
最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!