進度條

【PHP】10. 比較與邏輯運算子

【PHP】10. 比較與邏輯運算子

作者: 進度條編輯群 更新日期:

此文章也有影片介紹,可以搭配影片一起學習!

01. 比較與邏輯運算子 (所屬課程)

02. 比較與邏輯運算子 (所屬課程)


以下正式開始文章


比較運算子

上過上一堂布林值與條件判斷課程以後,我們就可以用if-else的方法進行比較,

 

 

那麼,我們現在可以宣告一個變數$number = 10,寫法如下:

條件:$number = 10;

條件成立:echo " True!!!! <br />";

條件不成立:echo " False… <br />";

 

範例:

<?php

$number = 10;

if ( $number ){
   echo"True!!!!  <br />";
}else{
   echo "False…  <br />";
}

?> 

 

輸出結果如下:

True!!!! 

 

那麼,我們想要用if else這個方式來做比較的話,可以用下列方法,

 

1. 大於 >

範例:

<?php

$number = 10;

if ($number > 9){
  echo "True!!!!  <br />";
}else{
  echo "False… <br />";
}

?> 


輸出結果如下:

True!!!! 


因為10比9大,所以結果是True!!!

 

2. 小於 <

範例:

<?php

$number = 10;

if ($number < 9){
   echo "True!!!!  <br />";
} else{
   echo "False… <br />";
}

?> 

 

輸出結果如下:

False… 


因為10沒有比9小,所以結果是False...

 

3. 等於==

範例:

<?php

$number = 10;

if ($number == 9){
  echo "True!!!!  <br />";
}else{
  echo "False… <br />";
}

?> 

 

輸出結果如下:

False… 

 

因為10不等於9,所以結果是False... 

 

[補充1] 如果條件寫成number= 9而不是number== 9,輸出結果會是如何?

<?php

$number = 10;

if ($number = 9){
  echo "True!!!!  <br />";
}else{
  echo "False… <br />";
}

?>

 

輸出結果如下:

True!!!! 


由於$number = 9是指$number被賦予9,而9會被轉換型別為true,而條件成立時輸出True!!!!

 

[補充2] 字串比較

PHP也可以比較字串

範例:

<?php

$string = "你好";

if ($string == "你好"){
  echo "True!!!!  <br />";
}else{
  echo "False… <br />”;
}

?>


輸出結果如下:

True!!!! 

 

由於PHP程式語言會自行轉換型別,例如我們想知道字串$string = "10"(字串10)是否等於$number = 10(數字10) 時,我們利用$string == $number來作為條件比較,

<?php

$number = 10;   // 數字
$string = "10";   // 字串

if ($string == $number){
  echo "True!!!!  <br />";
}else{
  echo "False… <br />";
}

?> 

 

輸出結果如下:

True!!!! 

 

結果答案是相等的。由此可知,PHP程式語言會自行轉換型別,那如果我們不想被轉換型別時該怎麼辦呢?

我們可以使用另一個方式

 

4. 嚴謹等於 ===

<?php

$number = 10;
$string = "10";

if($string === $number){
  echo "True!!!!  <br />";
}else{
  echo "False… <br />";
}

?> 

 

輸出結果如下:

False…

 

因為在嚴謹等於的狀態下,10不等於"10",所以結果是False...

  
5. != 不等於 (也可以寫成 <> 但較少使用)

範例:

<?php

$number = 10;

if( $number != 9 ){
  echo "True!!!!  <br />";
}else{
  echo "False… <br />";
}

?> 

 

輸出結果如下:

True!!!! 

  
! 表示相反的意思, != 代表不等於, 10不等於9, 所以結果是 True!!!! 

 

 6.!== 完全不等於(連型態一起比較)

<?php

$number = 10; 
$string    = "10";
  
if( $string !== $number  ){
  echo "True!!!!  <br />";
}else{
  echo "False… <br />";
}

?> 

 

輸出結果如下:

True!!!! 

 

 因為在嚴謹不等於的狀態下,10不等於"10",所以結果是 True!!!! 

 

7. >=大於等於

<?php

$number = 10;

if ( $number >= 10 ){
  echo "True!!!! <br/>";
}else{
  echo "False… <br />";
}

?> 

 

輸出結果如下:

True!!!!

  

8. <=小於等於

<?php

if ( $number <= 10 ){
 echo "True!!!! <br/>";
}else{
 echo "Fase... <br />"
}
?> 

 

輸出結果如下:

True!!!! 

 

邏輯運算子&& || XOR

在真實的情況下,我們常會出現兩個或更多的條件需要判斷,例如出門必需攜帶100元以上才能滿足一天的消費,而在便利商店裡的消費必須控制在50元以下,如果今天你有200元,想買便利商店裡10元的產品,利用之前學過的語法,我們可以這樣寫: 

<?php

$money = 200;
$goodPrice = 10;

if ($money > 100){
  if ( $goodPrice < 50){
    echo "買下來 <br />";
  }
}
?> 

 

輸出結果如下:

買下來 

 

我們也可以用邏輯運算子使得程式碼變得更精簡,

 

 

條件的括號可加可不加,

 

 

輸出結果如下:

買下來 

 

也就是說,我們可以用邏輯運算子(&& || XOR)符號,讓兩個條件和寫在一起。

 

輸出結果如下 : 

 <?php

  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粉絲團按讚喔!!

Small logo

進度條編輯群

進度條編輯團隊