我有两个在Google上找不到的快速问题。
此运营商的正确名称是什么?
$a = ($b > 5) ? 'High' : 'Low';
其次,是否有一种情况比任何其他运营商更可取?我知道'if else'是一种更快的方法,更容易阅读和编辑。
谢谢!
答案 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。在某些情况下,它可能会帮助你。在其他人看来,你将看不到任何好处。