如果有的话,许多三元条件的性能影响是什么?

时间:2011-11-03 11:52:49

标签: php performance ternary-operator

如果我在PHP中使用了很多三元条件运算符,会不会对我的脚本性能产生负面影响?

e.g:

$var = (cond)?"success":"error";

if(cond) success else error

我更喜欢使用三元条件,因为它使代码看起来更清晰,更小。

3 个答案:

答案 0 :(得分:4)

  

如果我在PHP中使用了很多三元条件运算符,那就可以了   对我的剧本的表现产生不利影响?

没有


$var = (cond)?"success":"error";

这是三元条件(或“内联如果”)......

if(cond) success else error

...但这只是一个普通的if - else语句,缺少换行符和大括号。它在功能上与:

相同
if (cond) {
   success
}
else {
   error
}

  

我更喜欢使用三元条件,因为它使代码看起来像   更清洁,更小。

不一定。所以要小心你在风格决定中做出的粗略概括。

答案 1 :(得分:0)

你能为我们定义内联吗?使用:

$var = (cond)?"success":"error";

if(cond) { 
   $var = "success";
}else{
   $var = "error";
}

不应该给你任何显着的性能差异。但是,如果您计划使用与PHP混合的HTML内联:

$var = "success"
echo "<p>$var</p>";

我建议查看模板系统,例如smarty。

答案 2 :(得分:0)

简短的回答是取决于但通常你不会注意到性能上的差异。通常如果测试条件是少量数据,则性能几乎相同。但是使用更大的数据集,您可以看到使用三元运算符的性能降低。

我建议你使用它,如果这是你喜欢的代码,如果你的代码真的开始爬行,那就只关心它了。

链接到执行此类效果测试的帖子:http://fabien.potencier.org/article/48/the-php-ternary-operator-fast-or-not