Is在php中运行布尔检查或只是简单的==1/==0更快



在php中检查像这样的布尔值是否更快

 if($var)

 if($var == 1)

 if(!$var) 

 if($var == 1)

var只能是1或0。

我预计,如果两个变量相等,直接评估变量的真实性会比测试更快。我的测试表明情况确实如此。当对==运算符求值时,您会期望有更高级别的间接性(这是对返回真值的附加函数的调用?),因此它增加了一些非常小的开销。

一些人认为这是一个过早的微观优化。我个人不认为这是因为

  1. 就我个人而言,我更喜欢阅读if ($var) {}而不是if ($var == 1) {}

  2. 只需要对语言有一个非常基本的了解,就可以知道任何truthy(等价于true)值都可以在if语句中进行评估

  3. 在某些方面,它可能会提高人们对if语句如何工作的认识(任何阻碍if ($var == true) {}的东西,如果只是一小部分,肯定是有帮助的)

考虑到它也更快,这些点虽然微不足道,但似乎表明if ($var) {}是更好的选择。至少在我看来,考虑到我的个人喜好是这样的。

if($var)更快。您可以查看此链接http://hbfs.wordpress.com/2008/08/26/optimizing-boolean-expressions-for-speed/以获得更详细的解释。

查看此网站:

http://www.phpbench.com/

最新更新