我有两个在 Google 上找不到的快速问题。
该运算符的正确名称是什么?
$a = ($b > 5) ? 'High' : 'Low';
其次,是否存在比任何其他运营商更可取的情况?我知道“if else”是一种更快的方法,并且更易于阅读和编辑。
谢谢!
它被称为三元运算符。
这个人做了一些基准测试,答案是视情况而定。
引用此文档:
// snippet 1
$tmp = isset($context['test']) ? $context['test'] : '';
// snippet 2
if (isset($context['test'])) {
$tmp = $context['test'];
} else {
$tmp = '';
}
正确答案是:视情况而定。大多数时候,它们的速度差不多,你不需要关心。但是如果 $context['test'] 包含大量数据,片段 2 比片段 1 快得多。
它被称为三元运算符。
它用于使您的代码更简单,并且有时可以帮助您将两个语句组合成一个语句。
这是一个例子。代替:
if($Disabled) $String = 'disabled'; else $String = '';
echo '<input type="text" ' . $String . '>';
您可以使用:
echo '<input type="text" ' . $Disabled ? 'disabled' : '' . '>';
我没有故意简化上面的代码,以清楚地表明我的观点。这样你只有一个语句,避免了额外的 if / else。在某些情况下,它可能会对您有所帮助。在其他情况下,您将看不到任何好处。