在php中,运行布尔检查或简单==1/==0更快

在php中,运行布尔检查或简单==1/==0更快,php,boolean,Php,Boolean,在php中检查布尔值是否更快 if($var) 或 及 或 var只能是1或0。如果($var)更快。您可以查看此链接以了解更多详细说明。查看此网站: 我认为直接评估一个变量的真实性比测试两个变量相等时要快。我的测试表明情况确实如此。当计算==运算符时,您会期望有更高级别的间接寻址(这是对附加函数的调用,返回真值?),因此它会增加一些非常小的开销 一些人认为这是一种过早的微观优化。我个人认为这不是因为 就我个人而言,我更喜欢读if($var){}而不是if($var==1){} 只要对该语言

在php中检查布尔值是否更快

 if($var)

var
只能是1或0。

如果($var)更快。您可以查看此链接以了解更多详细说明。

查看此网站:


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

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

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

  • 只要对该语言有一个非常基本的了解,就可以知道任何truthy(相当于true)值都可以在if语句中进行计算

  • 在某些方面,它可能会提高人们对if语句如何工作的认识(任何不鼓励if($var==true){}的语句(如果只有一小部分肯定是有用的)


  • 考虑到它的速度也更快,这些点(尽管是边缘点)似乎表明
    if($var){}
    是更好的选择。至少在我看来,考虑到我的个人偏好,这就是我的看法。

    过早优化是万恶之源,对一个人来说,这并不过早,第二,我不需要担心可读性。我需要担心的唯一因素是速度。编写一个测试脚本,在每个可能的场景中对随机值循环数百万次,然后查看。我怀疑APC或eAccelerator中的优化器会为您进行优化,如果您不使用其中一个,它们将比您编写if/then/else的方式更能提高您的速度。这里的主要重点应该是可读性,而不是速度。因此,$var的名称至关重要。如果你有像If(!$looping)这样的东西,那比If($looping!=1)更清楚。但是在另一种情况下,您可能想说如果($POST('submit'){do something}。这完全取决于上下文,编程中没有硬性规定。
     if($var == 1)
    
     if(!$var) 
    
     if($var == 1)