PHP 中 == 和 === 比較運算子的區別

Subodh Poudel 2023年1月30日
  1. 使用 PHP 中的 Double (==) 和 Triple (===) 比較運算子比較整數值和浮點值
  2. 使用 PHP 中的 Double (==) 和 Triple (===) 比較運算子比較整數值和布林值
  3. 使用 Double 和 Triple Equals 比較運算子比較整數值和字串值
PHP 中 == 和 === 比較運算子的區別

本文將介紹 PHP 中雙等號 == 和三等號 === 比較運算子的區別。顯著的區別是雙等於比較運算子比較兩個運算元的值。相反,三元組等於比較運算子比較運算元的值和型別。

我們將介紹一種通過比較整數和浮點值來區分雙等和三等比較運算子的方法。我們將使用三元運算子作為條件語句。

第二種方法將雙等號和三等號比較運算子與一個整數和一個布林值進行比較。我們還將在此方法中使用三元運算子。

我們還將演示如何使用雙等號和三等號比較運算子來比較整數值和字串。我們將使用 var_dump() 函式來轉儲此方法中的比較。

使用 PHP 中的 Double (==) 和 Triple (===) 比較運算子比較整數值和浮點值

我們可以使用比較運算子比較不同型別的兩個相同值。此方法比較具有相同值的整數和浮點數。我們可以使用三元運算子來比較運算元和 var_dump() 函式來轉儲它們的布林值。

例如,建立一個變數 $a 並將整數值 5 儲存在其中。將浮點值 5.0 儲存在另一個變數 $b 中。使用三元運算子將兩個變數與三元比較運算子進行比較。在三元運算子中,真值返回 true,假值返回 false。將操作儲存在 $c 變數中。類似地,使用雙等號運算子和三元運算子比較兩個變數,並將運算儲存在 $d 變數中。在 $c$d 變數中使用 var_dump() 函式。

程式碼示例的輸出返回三等號運算子的 false 值和雙等號運算子的 true 值。值 5 是整數型別,值 5.0 是浮點型別,儘管值是相同的。因此,三元等號運算子返回假值,雙運算子返回真值。

示例程式碼:

#php 7.x 
<?php
$a = 5; 
$b = 5.0; 
$c = $a===$b ? true : false;
$d = $a==$b ? true : false;
var_dump($c);
var_dump($d);
?>

輸出:

bool(false) bool(true)

使用 PHP 中的 Double (==) 和 Triple (===) 比較運算子比較整數值和布林值

此方法比較整數值 1 和布林值 true。整數值 1 表示真值。我們可以像第一種方法一樣使用三元運算子。例如,將整數值 1 儲存在變數 $a 中。建立另一個變數 $b 並在其中儲存一個布林值 true。與第一種方法一樣,使用三元運算子比較這兩個變數。使用雙等和三等比較運算子比較變數。將結果儲存在變數 $c$d 中,並使用 var_dump() 函式來轉儲這些變數。

$c 變數返回假值,而 $d 值返回真值。由於三重等號運算子比較運算元的型別,很明顯 1true 的型別不匹配。但是,值 1 是真值,因此它的值與 true 布林值相同。

示例程式碼:

#php 7.x 
<?php
$a = 1; 
$b = true; 
$c = $a===$b ? true : false;
$d = $a==$b ? true : false;
var_dump($c);
var_dump($d);
?>

輸出:

bool(false) bool(true)

使用 Double 和 Triple Equals 比較運算子比較整數值和字串值

我們可以直接在 var_dump() 函式中比較運算元以檢視比較結果。該方法是使用三元運算子的方法的簡寫方法。下圖使用三等號和雙等號比較運算子比較整數值和字串值。

例如,建立一個變數 $a 並將整數值 5 儲存在其中。將字串值 '5' 儲存在另一個變數 $b 中。首先使用三等號比較運算子比較這兩個變數,然後使用雙等號運算子。將這些比較包裝在 var_dump() 函式中。

第一次比較結果為假值。第二次比較返回真值。兩個變數的型別不匹配,所以會產生一個假值。字串值 5 被型別轉換為整數值,並且兩個變數的值將相同。但是,變數的型別不會改變。

示例程式碼:

#php 7.x 
<?php
$a = 5; 
$b = '5';
var_dump($a===$b);
var_dump($a==$b);
?>

輸出:

bool(false) bool(true)
作者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

相關文章 - PHP Operator