比较,!==与!=
|
我知道
!==
也用于比较变量类型,而!=
仅比较值。
但是我看到许多人在比较值时会使用“ 0”,例如:
$stuff = \'foo\';
if($stuff !== \'foo\') // do...
他们有任何理由这样做吗? ѭ0比1快还是什么?
没有找到相关结果
已邀请:
7 个回复
貉骂
通过相等性测试时为
),则请使用
或
。 如Headshota所述,如果您使用的是对象,则
检查两个变量是否实际上指向同一对象实例,而
尝试按值匹配它们,这可能会导致意外结果,应格外小心。在这里将使用严格运算符,因为这对应用程序意味着某些意义。 要回答您的问题,如果有人在使用context8ѭ或
时您确实知道两个变量都是相同的(标量)类型,那么我猜这只是编码风格的问题,并且显示代码中的一些严格性,从而加强了两个变量属于同一类型的想法,可能不考虑性能。 如果需要这样做,则必须使用严格的运算符,而不是作为性能优化。 更新:要回复速度参数,让我们考虑这个小的基准:
我大致得到:
现在,如果我使用ѭ16来强制进行隐式转换,我将大致得到:
在两种情况下,这大约意味着2秒的增益。您可能会以某种方式认为是正确的,这表明了严格比较运算符的速度优势。但是请不要忘记,我们所说的是
= 1亿次迭代。 这意味着一次严格的比较将使脚本速度提高19英镑。 如果您认为这是编写脚本时应考虑的事情,请这样做。但是您很快就会遇到其他微小的优化,这些优化将使您获得1000倍的速度提升,并使这种“优化”看起来毫无用处。这是过早优化的教科书。 同样,如果需要,请使用严格比较运算符,因为这是代码中的要求。出于性能原因,请勿使用它。
姬第柔炒
漂汀拦
运算符要慢一些,因为它在必要时包括隐式转换, 而
先比较类型然后再比较值(仅当类型相等时) 另外,请遵循此答案以获取有关两个操作数之间差异的更多信息
翱抹村
粟痢凰副
将返回true,而
将返回false。 如果你有
将返回true,而
将返回false。
伞腹
雄鞋谋塘