PHP运营商速度

时间:2013-07-05 19:39:55

标签: php operators

我有两个在Google上找不到的快速问题。

此运营商的正确名称是什么?

$a = ($b > 5) ? 'High' : 'Low';

其次,是否有一种情况比任何其他运营商更可取?我知道'if else'是一种更快的方法,更容易阅读和编辑。

谢谢!

2 个答案:

答案 0 :(得分:3)

它被称为Ternary operator

这个person做了一些基准,答案是它取决于具体情况。

引用此文档:

// snippet 1
$tmp = isset($context['test']) ? $context['test'] : '';

// snippet 2
if (isset($context['test'])) {
    $tmp = $context['test'];
} else {
    $tmp = '';
}
  

正确的答案是:这取决于。大多数时候,它们的速度大致相同,而且您不需要关心。但如果$ context [' test']包含大量数据,则代码段2比代码段1快得多。

答案 1 :(得分:0)

它被称为三元运算符。

它用于使您的代码更简单,它有时可以帮助您将两个语句组合成一个。

这是一个例子。而不是:

if($Disabled) $String = 'disabled'; else $String = '';
echo '<input type="text" ' . $String . '>';

您可以使用:

echo '<input type="text" ' . $Disabled ? 'disabled' : '' . '>';

我没有故意简化上面的代码,以清楚地表明我的观点。这样你只需要一个语句,避免额外的if / else。在某些情况下,它可能会帮助你。在其他人看来,你将看不到任何好处。