为什么在PHP中,使用“===”比“==”运算符更快?

174

=== 为什么在 PHP 中比 == 更快?


40
它更快了,但是它是否显著更快呢? - Piskvor left the building
21
请不要阅读有关 PHP 哪个更快的内容,而是了解如何在单个 SQL 查询中获取有趣的数据,而不滥用 JOIN 操作。 - Kamil Szot
15
有关于在 JavaScript 中使用 ===== 运算符的区别,对同一主题感兴趣的人可以在这里阅读:https://dev59.com/Z3RC5IYBdhLWcg3wROpQ - Marco Demaio
5
@Piskvor,那不是问题的问题。 - Pacerier
6
@Pacerier:公道的观点——这就是为什么我只进行评论。它并没有回答问题,但提供了对问题的看法。 - Piskvor left the building
显示剩余2条评论
12个回答

0
在 PHP(C 代码)中,“value” 是一个类似于“class”的东西:
class value
{
    $int_;
    $float_;
    $string_;
    $array_;
    $object_;
}

当你比较$a == $b,而$aint类型时,会出现以下情况:

if ($a->int_ == $b->int_ || $a->int_ == (int) $b->float_ || $a->int_ == (int) $b->string_ || ...)

但是string'1'不会被转换为ASCII码49,它将是1

当您比较$a === $b$aint类型时,会出现以下情况:

if ($a->int_ == $b->int_)

-3
如果测试结果正确,那么这一定是编译器问题。
处理器会在时钟周期内执行它被告知要做的任何事情。
如果需要处理的内容较少,则处理速度会更快。
补充:
啊,实际上,如果编译器已经创建了大量的机器代码进行处理,那么如果它已经添加了无数的内容来处理需要比较的数据类型,那么删除一个“次要”的IF也不会对速度产生太大影响。
如果有人仍然阅读这篇文章,我对进一步讨论感兴趣。
Phil

你的代码库里只有一个 IF 语句吗?这很奇怪,因为在我工作过的每个代码库中,我们都有成千上万个 IF 或比较语句被随处调用。 - SikoSoft

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接