两者之间有区别吗!==还有!=在PHP中?
两者之间有区别吗!==还有!=在PHP中?,php,comparison,operators,Php,Comparison,Operators,之间有区别吗==和=吗?的=运算符比较值,而==运算符也比较类型 这意味着: var_dump(5!="5"); // bool(false) var_dump(5!=="5"); // bool(true), because "5" and 5 are of different types !==检查类型和值,!=只检查值 $num = 5 if ($num == "5") // true, since both contain 5 if ($num === "5") // false,
之间有区别吗==代码>和=吗?的=代码>运算符比较值,而==代码>运算符也比较类型
这意味着:
var_dump(5!="5"); // bool(false)
var_dump(5!=="5"); // bool(true), because "5" and 5 are of different types
!==检查类型和值,!=只检查值
$num = 5
if ($num == "5") // true, since both contain 5
if ($num === "5") // false, since "5" is not the same type as 5, (string vs int)
=
与=
运算符相反,后者检查类型之间的相等性
==
是==
运算符的逆运算符,它只检查相同类型事物的相等性。===称为标识运算符。并在其他问题的回答中详细讨论
其他人在这里的回答也是正确的。=
表示“不相等”,而==代码>表示“不相同”。例如:
'1' != 1 # evaluates to false, because '1' equals 1
'1' !== 1 # evaluates to true, because '1' is of a different type than 1
请参阅关于哪些值相等(=
)以及哪些值相同(==
)的说明。运算符=如果其两个操作数具有不同的值,则代码>返回true
操作员==如果两个操作数的值不同或类型不同,则code>返回true
干杯非常常见的重复问题,取决于您搜索答案的方式:空=“null”不是错误的示例。此外,echo打印1表示布尔(真),而不打印布尔(假)。代码片段的实际输出是11。@VolkerK-我面前没有PHP解释器,但希望这是一个更准确的示例。:-)我的错误。谢谢你的编辑,本·布兰克。希望原始海报没有混淆。==
对类型的处理也与==
略有不同-例如,数字字符串(“5”、“05”)被比较为数字,不同顺序的关联数组仍然可以相等。我会将==
描述为“完全相同”,而不是“相同的值和类型”。