0

所以我知道你总是使用 JSLint 语法===。在 PHP 中我一直在做==. 我知道在 PHP 中==意味着“大致相同”和===“严格相同”。我有两个问题。

===1)在PHP中使用是最佳实践吗?(我知道我将不得不更改我的一些代码。)

2)做==and===代表与 PHP 中相同的差异吗?

4

3 回答 3

5

与 Javascript 相比, PHP==包含了一个全新的 WTF 维度==。例如,在 PHP 中,==实际上会解析字符串中的数字并比较它们,例如,在 PHP"000" == "0"中是true. 在 Javascript 中,这是false 因为根据字符串相等的任何合理定义,它们显然是 2 个不同的字符串。

至于==一般的 Javascript,如果您在规范中阅读它们的实际规则,它的规则非常简单(我仍然不会使用它,因为普通的 joe 显然不阅读规范)。在 PHP 中我总是会使用===,因为没有规范 - 只是比较的临时示例。例如,我必须阅读 PHP 源代码中的字符串解析。


PHP 字符串解析的另一个非常有趣的效果==是,如果字符串不能被解析成机器整数,它只会被作为字符串进行比较。因此,根据 PHP 是在 32 位还是 64 位下运行,相同的相等比较可能会给出不同的结果。娱乐时间。

于 2013-07-04T15:56:35.487 回答
0

在 PHP === 中,如果您还想检查值的类型,您应该使用。如果类型不重要,好的做法是只使用 ==。

于 2013-07-04T15:55:21.693 回答
-1

是的==,并且===在 javascript 中的含义与在 PHP 中的含义相同。

===在 PHP 中使用over不一定是最佳实践,==但您需要注意何时使用===.

示例 1:

<?php
$str = 'abcde';
if (strstr($str, 'a') == false {
    // This line will get printed as strstr() will return the position of a
    // which is 0 and 0 == false but 0 !== false so === is needed
    print 'a is not in the string';
}
?>

示例 2:

<?php
$a = 1;
$b = '1';
$a == $b; //true
$a === $b //false
于 2013-07-04T16:01:45.317 回答