有什么区别==
and ===
?
- 松散究竟如何
==
比较工作?
- 具体如何严格
===
比较工作?
有哪些有用的例子?
之间的区别==
and ===
松散的区别==
等于运算符和严格运算符===
相同的运算符在中得到了准确的解释manual http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison:
比较运算符
Example |
Name |
Result |
$a == $b |
Equal |
TRUE if $a is equal to $b after type juggling. |
$a === $b |
Identical |
TRUE if $a is equal to $b, and they are of the same type. |
Loosely ==
平等比较
如果您正在使用==
运算符,或任何其他使用松散比较的比较运算符,例如!=
, <>
or ==
,你总是要看看context看看什么东西、在哪里以及为什么被转换,以了解正在发生的事情。
转换规则
- 转换为布尔值 http://php.net/manual/en/language.types.boolean.php#language.types.boolean.casting
- 转换为整数 http://php.net/manual/en/language.types.integer.php#language.types.integer.casting
- 转换为浮点数 http://php.net/manual/en/language.types.float.php#language.types.float.casting
- 转换为字符串 http://php.net/manual/en/language.types.string.php#language.types.string.casting
- 转换为数组 http://php.net/manual/en/language.types.array.php#language.types.array.casting
- 转换为对象 http://php.net/manual/en/language.types.object.php#language.types.object.casting
- 转换为资源 http://php.net/manual/en/language.types.resource.php#language.types.resource.casting
- 转换为 NULL http://php.net/manual/en/language.types.null.php#language.types.null.casting
类型对照表
作为参考和示例,您可以查看以下比较表manual http://php.net/manual/en/types.comparisons.php#types.comparisions-loose:
|
TRUE |
FALSE |
1 |
0 |
-1 |
"1" |
"0" |
"-1" |
NULL |
array() |
"php" |
"" |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
1 |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
0 |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
-1 |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
"1" |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
"0" |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
"-1" |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
NULL |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
array() |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
FALSE |
"php" |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
"" |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
Strict ===
相同比较
如果您正在使用===
运算符,或任何其他使用严格比较的比较运算符,例如!==
or ===
,那么你总是可以确定类型不会神奇地改变,因为不会发生任何转换。因此,通过严格比较,类型和值必须相同,而不仅仅是值。
类型对照表
作为参考和示例,您可以查看以下比较表manual http://php.net/manual/en/types.comparisons.php#type.comparisons-strict:
严格比较===
|
TRUE |
FALSE |
1 |
0 |
-1 |
"1" |
"0" |
"-1" |
NULL |
array() |
"php" |
"" |
TRUE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
1 |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
0 |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
-1 |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
"1" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
"0" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
"-1" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
NULL |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
array() |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
"php" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
"" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
编者注- 这在之前已被正确引用,但作为降价表更具可读性。这不是抄袭
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)