3

可能重复:
php == vs === 运算符

===我理解 PHP 中,!====,之间的区别,!=但我总是觉得自己很喜欢===!==但我没有真正的理由。在 PHP.net 上的文档中,经常有“警告”说您应该使用它===来检查某些内置函数的返回值。所以我的问题是为什么我应该使用一组运算符而不是另一组?

非常感谢 :)。

4

4 回答 4

5

如果自动类型转换没有按照您(或将来必须维护您的代码的开发人员)期望的方式进行转换(并且类型对话的规则通常很复杂并且在语言,所以这种混淆的空间很大)。

除非您需要打字对话,否则请始终使用三字符版本。

于 2012-05-08T09:17:21.833 回答
3

最常见的原因是函数返回数字/字符串,并且可能在错误时返回 false。如果 0 是有效结果,而 false 表示错误,则必须使用 === 进行区分。但是,总是使用 === 可能会导致意外行为,例如当返回 null 并且也被认为是无效值,但类型检查仅用于 false 时。因此,如果数据来自您自己的源代码/PHP 函数,并且您知道无效值正好是 1,请使用严格检查。然而,在大多数情况下,== 是一个安全的选择,尤其是在您处理外部数据时,这是您无法控制的。

于 2012-05-08T09:21:07.683 回答
3

===并且!==仅在您关心两个操作数属于同一类型的情况下才应使用。

否则 - 使用==and !=- 因为隐式转换是我们喜欢 php 的原因

于 2012-05-08T09:18:08.573 回答
1

===!==如果您使用的函数可能成功返回 0,失败时返回 FALSE,这很重要。在 PHP 0 中也等于 FALSE,这将导致函数失败的结论。

if(somefunction() == 0) {
    // Do something
}

假设 somefunction 成功退出时返回 0,失败时返回 FALSE,上面的代码片段将在返回码为 FALSE 时触发。

使用===可以防止你这样做,因为它只会在响应确实为 0 时触发。

于 2012-05-08T09:19:58.103 回答