6

这可能是一个令人痛苦的基本问题,但我想知道有关使用 PHP是否相同 !==是否等于 !=控制流的性能问题。

考虑以下简单的 PHP 函数:

<?php
 function test_json($json = NULL) {
  if ($json != NULL) {
   echo 'You passed some JSON.';
  } else {
   echo 'You failed to pass any JSON.';
  }
 }
?>

从性能的角度来看,是否最好使用if same ( !==) 来防止 PHP 遍历变量类型,试图找到一个有效的比较?

假设!== 首先比较变量类型,如果失败,它会立即返回FALSE? 自 PHP3 以来,我!=几乎将其用作反射。现在我正在处理一些计算密集度更高的项目,分钟性能方面的考虑变得更加令人担忧。

当然,欢迎对流控制优化提出其他意见!

4

2 回答 2

8

我还没有对松散和严格的比较运算符进行任何性能测试,但是对于你想要做的事情,我会推荐类似的东西

if (!is_null($json)) {
    do_stuff()
}

更多信息请is_null()访问http://www.php.net/manual/en/function.is-null.php

编辑:我在上面链接到的 php 页面的注释中的一个注释有一些结果表明该===运算符比运算符稍快==,两者都比is_null(). 然而,另一个注释指出“===NULL 和 is_null 之间的执行时间差小于 250 纳秒。去优化一些重要的东西。” 我不得不同意。综上所述,我建议您使用您认为最易读的内容。

于 2012-01-16T22:41:29.880 回答
-1

您可以在询问之前编写这样的测试代码;根据测试“使用”===" 比 is_null() 快 30 倍。”

http://www.php.net/manual/en/language.types.null.php#77937

于 2012-01-16T22:50:56.983 回答