请阅读以下代码:
<?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”条件?
提前致谢。
答案 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时,只需尝试使代码清晰,干净且一致,以便您和其他人可以维护。
希望有帮助...