6

PHPでelseifも含むインラインifステートメントを使用する方法はありますか?

ロジックは次のようになると思います。

$unparsedCalculation = ($calculation > 0) ? "<span style=\"color: #9FE076;\">".$calculation : ($calculation < 0) ? "<span style=\"color: #FF736A;\">".$calculation : $calculation;
4

4 に答える 4

21

elseifは にすぎないelse ifので、実際には はありませんelseif。便利なだけです。三項演算子は非常に短いロジックに使用されることを意図しているため、三項演算子には同じ利便性はありません。

if ($a) { ... } elseif ($b) { ... } else { ... }

と同じです

if ($a) { ... } else { if ($b) { ... } else { ... } }

したがって、3 進法は次のようになります。

$a ? ( ... ) : ( $b ? ( ... ) : ( ... ) )
于 2012-05-14T22:01:38.613 に答える
2

ネストされた三項演算子を使用できます

      (IF ? THEN : ELSE) 
      (IF ? THEN : ELSE(IF ? THEN : ELSE(IF ? THEN : ELSE))

読みやすくするためのコーディング標準はここにあります

于 2012-05-14T22:04:01.713 に答える
1

操作の順序の問題のために、その一部を括弧で囲む必要がありますが、確かにそれを行うことができます。三項演算子には「elseif」はありませんが、事実上同じことです

if (condition) ? (true) : (false> if (condition) ? (true) : (false));

このようにコーディングするべきではありませんが、読みやすさの観点からは混乱を招きます。誰もそれを見て「甘い、忍者!」とは思わないでしょう。彼らは「ええと、wtf」と言うでしょう

于 2012-05-14T22:04:51.433 に答える