所以我知道你总是使用 JSLint 语法===
。在 PHP 中我一直在做==
. 我知道在 PHP 中==
意味着“大致相同”和===
“严格相同”。我有两个问题。
===
1)在PHP中使用是最佳实践吗?(我知道我将不得不更改我的一些代码。)
2)做==
and===
代表与 PHP 中相同的差异吗?
所以我知道你总是使用 JSLint 语法===
。在 PHP 中我一直在做==
. 我知道在 PHP 中==
意味着“大致相同”和===
“严格相同”。我有两个问题。
===
1)在PHP中使用是最佳实践吗?(我知道我将不得不更改我的一些代码。)
2)做==
and===
代表与 PHP 中相同的差异吗?
与 Javascript 相比, PHP==
包含了一个全新的 WTF 维度==
。例如,在 PHP 中,==
实际上会解析字符串中的数字并比较它们,例如,在 PHP"000" == "0"
中是true
. 在 Javascript 中,这是false
因为根据字符串相等的任何合理定义,它们显然是 2 个不同的字符串。
至于==
一般的 Javascript,如果您在规范中阅读它们的实际规则,它的规则非常简单(我仍然不会使用它,因为普通的 joe 显然不阅读规范)。在 PHP 中我总是会使用===
,因为没有规范 - 只是比较的临时示例。例如,我必须阅读 PHP 源代码中的字符串解析。
PHP 字符串解析的另一个非常有趣的效果==
是,如果字符串不能被解析成机器整数,它只会被作为字符串进行比较。因此,根据 PHP 是在 32 位还是 64 位下运行,相同的相等比较可能会给出不同的结果。娱乐时间。
在 PHP === 中,如果您还想检查值的类型,您应该使用。如果类型不重要,好的做法是只使用 ==。
是的==
,并且===
在 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