我注意到有人使用PHP操作符===
,我无法理解。我已经尝试了一个函数,它以疯狂的方式对应。
此运营商的定义是什么?我甚至无法在PHP运算符的声明中找到它。
答案 0 :(得分:65)
如果$a === $b (Identical)
$a
等于$b
,则TRUE ,并且它们属于同一类型。 (在PHP 4中介绍)
答案 1 :(得分:56)
$ a == $ b如果$ a等于$ b,则等于TRUE,但(True == -1)除外,它仍为True。
$ a === $ b如果$ a等于$ b,则相同为TRUE,且它们属于同一类型。
> "5" == 5;
True
> "5" === 5;
False
答案 2 :(得分:12)
您可以阅读here,简短摘要:
$ a == $ b如果在类型杂耍之后$ a等于$ b,则等于TRUE。
$ a === $ b如果$ a等于$ b,则相同为TRUE,且它们属于同一类型。
答案 3 :(得分:9)
在PHP中,您可以使用==运算符或===运算符比较两个值。区别在于:
PHP是一种动态的解释语言,对数据类型并不严格。这意味着语言本身会在需要时尝试转换数据类型。
echo 4 + "2"; // output is 6
输出是整数值6,因为+
是PHP中的数字加法运算符,所以如果为其提供操作数和其他数据类型,PHP将首先将它们转换为适当的类型(“2”将转换为2)然后执行操作。
如果使用==作为具有两个可能位于不同数据类型的操作数的比较运算符,PHP将把第二个操作数类型转换为第一个操作数类型。所以:
4 ==“4”// true
PHP将“4”转换为4,然后比较这些值。在这种情况下,结果将是真实的。
如果使用===作为比较运算符,PHP将不会尝试转换任何数据类型。因此,如果操作数的类型不同,那么它们就不相同了。
4 ===“4”//假
答案 4 :(得分:6)
$x == $y
为TRUE:
$x = 1; //int type
$y = "1"; //string type
if ($x == $y) {
// This will execute
}
$x === $y
如果$ x和$ y的值相同且$ x和$ y的类型相同,则为TRUE:
$x = 1; //int type
$y = "1"; //string type
if ($x === $y) {
// This will not execute
}
答案 5 :(得分:4)
您将在许多动态类型语言中看到此运算符,而不仅仅是PHP。
==
会尝试将其处理的内容转换为可以比较的类型。
===
将严格比较类型和值。
在任何动态类型语言中你都要小心==,你可以得到一些有趣的错误。
三元===
不太方便,但更安全。为了进行比较,您应该总是考虑一下它是===
还是==
答案 6 :(得分:3)
三等号===检查看 两个变量是否相等且类型相同。
答案 7 :(得分:1)
请参阅 Double and Triple equals operator in PHP ,我在谷歌搜索“PHP三等于运算符”。
有一次它说:
double =符号是一个比较,并测试左边的变量/ expression / constant是否与右边的变量/ expression / constant具有相同的值。
三元符号是一个比较,看两个变量/表达式/常量是否相等并且具有相同的类型 - 即两者都是字符串或两者都是整数。
它也给出了一个解释它的例子。
答案 8 :(得分:1)
对于PHP,零可以有许多不同的含义
因此添加===以确保类型和值相同。
答案 9 :(得分:0)
“===”匹配变量中的值以及变量的数据类型。