如何在内存中进行'if'语句检查?

时间:2011-11-14 06:15:35

标签: php if-statement

请阅读以下代码:

<?php
    $flag = 1;
    $name = $_GET['name'];
    if($name == NULL){
       $flag = 0;
    }

 // some more code and checking....
 ?>

这里大多数时候'name'参数不会是'NULL'。如果为null,我将错误标志设置为0。 有人告诉我,我们必须在编程中使用积极的方法。即由于大多数时候'name'参数不会为'NULL',我应该将上面的代码编写为:

if($name != NULL){
  $flag=1;
}else{
  $flag =0;
}

上面的代码改进了性能,因为'if'语句检查($ name == NULL和$ name!= NULL)的工作方式。(这就是所说的)

这种积极的方法是否有助于提高绩效? “if”语句如何检查内存中的“if”条件?

提前致谢。

4 个答案:

答案 0 :(得分:2)

对于这样简单的陈述,我不关心性能并使用更具可读性/可维护性的语句。

这种简单的分配和比较相当便宜。如果您正在访问数据库等,可能的性能/内存差异在这里毫无意义。

答案 1 :(得分:0)

除非您为Facebook编写代码,否则这些方法都不会对Web应用程序的性能产生明显影响。 (也许即便如此,它也许没有什么区别。)

答案 2 :(得分:0)

  

这种积极的方法是否有助于提高绩效?

绝对不。
如果这种微观方法会影响性能,那就没有任何意义。至少在PHP世界中,CPU必须执行数十万次这样的比较,直到它最终达到你单独的孤独状态。

另外,如果你只需要设置一个布尔标志,根本不需要写条件 - 它是冗余的(不是在性能方面而是在代码一致性和健全性方面),因为每个逻辑运算符已经返回一个布尔值:

$flag = ($name != NULL);

无论如何,值得注意的是,如果未设置$ _GET ['name'],您的代码将发出错误。
因此,在您的情况下,似乎最好的方法只是一行代码:

$flag = isset($_GET['name']);

答案 3 :(得分:0)

如果您担心性能,请使用c或c ++。

http://shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php

请注意,PHP比c或c ++慢45倍。

使用PHP时,只需尝试使代码清晰,干净且一致,以便您和其他人可以维护。

希望有帮助...