我注意到有人使用PHP运算符
这个运算符的定义是什么? 我甚至无法在PHP运算符的声明中找到它。
===
,但我无法理解其含义。 我已经尝试将其用于函数中,但它的行为方式非常奇怪。这个运算符的定义是什么? 我甚至无法在PHP运算符的声明中找到它。
===
,但我无法理解其含义。 我已经尝试将其用于函数中,但它的行为方式非常奇怪。如果$a等于$b,并且它们的类型相同,则返回TRUE。(在PHP 4中引入)$a === $b (Identical)
$a == $b 相等 如果$a和$b相等,则返回TRUE,但注意(True == -1)依然为True。
$a === $b 全等 如果$a和$b相等且类型也相同,则返回TRUE。
> "5" == 5;
True
> "5" === 5;
False
class FirstClass {
public $a;
public $b;
function FirstClass() {
$this -> a = 1;
$this -> b = 1;
}
}
$first = new FirstClass();
$second = new FirstClass();
if($first === $second) {
echo "triple equal!";
} else {
echo "triple not equal!";
}
- Vladimir Despotovic==
就像通常一样,进行基于实例值的比较。" - Dykam您可以在这里阅读,简要概述如下:
$a == $b 相等 如果 $a 经过强制类型转换后等于 $b,则返回 TRUE。
$a === $b 全等 如果 $a 等于 $b 并且它们的类型相同,则返回 TRUE。
在PHP中,你可以使用==或===运算符来比较两个值。二者的区别在于:
PHP是一种动态解释型语言,对数据类型不严格。这意味着,语言本身会尝试在需要时转换数据类型。
echo 4 + "2"; // output is 6
输出的是整数值6,因为在PHP中,加号(+
)是数字加法运算符,所以如果给它提供其他数据类型的操作数,PHP将首先将它们转换为相应的类型("2"将被转换为2),然后执行操作。$x == $y
为真,如果 $x 和 $y 的值相同:
$x = 1; //int type
$y = "1"; //string type
if ($x == $y) {
// This will execute
}
$x === $y
如果$x和$y的值相同且类型相同,则为TRUE:
$x = 1; //int type
$y = "1"; //string type
if ($x === $y) {
// This will not execute
}
你会在许多动态类型语言中看到这个运算符,不仅仅是 PHP。
==
会尝试将其处理的任何内容转换为可以进行比较的类型。
===
将严格比较类型和值。
在任何动态类型语言中,您都必须小心使用 ==,否则可能会出现一些有趣的错误。
三元 ===
不太方便,但更加安全。在比较时,您应该始终考虑是否应该使用 ===
或 ==
。
看看我在谷歌上搜索“PHP三等号运算符”得到的PHP中的双等号和三等号运算符。
其中有一段说:
双等号是比较运算符,用于测试左侧的变量/表达式/常量是否与右侧的变量/表达式/常量具有相同的值。
三等号是比较运算符,用于检查两个变量/表达式/常量是否相等且类型相同 - 即都是字符串或都是整数。
它还给出了一个例子来解释它。
对于 PHP 来说,零有许多不同的含义
因此,添加 === 可以确保类型和值相同。
"===" 匹配变量的值和数据类型。