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