Google で見つけられない簡単な質問が 2 つあります。
このオペレーターの正しい名前は?
$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 よりもはるかに高速です。
三項演算子といいます。
コードを単純にするために使用され、2 つのステートメントを 1 つに結合するのに役立つ場合があります。
ここに例があります。それ以外の:
if($Disabled) $String = 'disabled'; else $String = '';
echo '<input type="text" ' . $String . '>';
以下を使用できます。
echo '<input type="text" ' . $Disabled ? 'disabled' : '' . '>';
要点を明確に示すために、上記のコードは意図的に簡略化していません。このようにして、余分な if / else を避けて、ステートメントを 1 つだけ持つことができます。状況によっては、それが役立つ場合があります。他のものでは、何のメリットもありません。