PHPでelseifも含むインラインifステートメントを使用する方法はありますか?
ロジックは次のようになると思います。
$unparsedCalculation = ($calculation > 0) ? "<span style=\"color: #9FE076;\">".$calculation : ($calculation < 0) ? "<span style=\"color: #FF736A;\">".$calculation : $calculation;
PHPでelseifも含むインラインifステートメントを使用する方法はありますか?
ロジックは次のようになると思います。
$unparsedCalculation = ($calculation > 0) ? "<span style=\"color: #9FE076;\">".$calculation : ($calculation < 0) ? "<span style=\"color: #FF736A;\">".$calculation : $calculation;
elseif
は にすぎないelse if
ので、実際には はありませんelseif
。便利なだけです。三項演算子は非常に短いロジックに使用されることを意図しているため、三項演算子には同じ利便性はありません。
if ($a) { ... } elseif ($b) { ... } else { ... }
と同じです
if ($a) { ... } else { if ($b) { ... } else { ... } }
したがって、3 進法は次のようになります。
$a ? ( ... ) : ( $b ? ( ... ) : ( ... ) )
ネストされた三項演算子を使用できます
(IF ? THEN : ELSE)
(IF ? THEN : ELSE(IF ? THEN : ELSE(IF ? THEN : ELSE))
読みやすくするためのコーディング標準はここにあります
操作の順序の問題のために、その一部を括弧で囲む必要がありますが、確かにそれを行うことができます。三項演算子には「elseif」はありませんが、事実上同じことです
if (condition) ? (true) : (false> if (condition) ? (true) : (false));
このようにコーディングするべきではありませんが、読みやすさの観点からは混乱を招きます。誰もそれを見て「甘い、忍者!」とは思わないでしょう。彼らは「ええと、wtf」と言うでしょう