应该使用`if($ a!= NULL)`或`if($ a!== NULL)`来控制程序流吗?

时间:2012-01-16 22:37:07

标签: php performance if-statement micro-optimization program-flow

这可能是一个难以回答的基本问题,但我想知道有关使用PHP的如果相同 !==如果相等 {{}的性能问题1}}来控制流量。

考虑以下简单的PHP函数:

!=

从性能的角度来看,最好使用如果相同的<?php function test_json($json = NULL) { if ($json != NULL) { echo 'You passed some JSON.'; } else { echo 'You failed to pass any JSON.'; } } ?> )来阻止PHP迭代变量类型,试图找到有效的比较吗?

假设 !== 首先比较变量类型,如果失败,它会立即返回!==? 我使用FALSE因为PHP3几乎就像反射一样。现在我正在研究一些计算密集度更高的项目,因此需要考虑细微的性能问题。

当然欢迎关于流量控制优化的其他意见!

2 个答案:

答案 0 :(得分:7)

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

这样的东西。
if (!is_null($json)) {
    do_stuff()
}

有关http://www.php.net/manual/en/function.is-null.php

is_null()的更多信息

编辑:我在上面链接的php页面的评论中的注释显示,===运算符比==运算符略快,两者都比{{is_null()运算符快。 1}}。然而,另一个注意事项指出“= = NULL和is_null之间的执行时间差小于250纳秒。去优化重要的东西。”我必须在那里同意。所有这一切,我建议你选择你认为最具可读性的。

答案 1 :(得分:0)

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

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