web-dev-qa-db-ja.com

三項演算子:悪いまたは良い習慣?

私はそれを使用する/使用しない理由と独創的なアイデア(それらの使用とそれらを置き換える)を探しています。


関連(ただし、質問の対象にはなりません):

23
vyger

読みやすくするために、80文字の1行に収まる場合にのみ3項を使用します。

45
Ted Dziuba

PHPなどのテンプレート言語の短いタグに適しています。例:

<form>
<input type='radio' name='gender' value='m' <?=($gender=='m')?"checked":""?>>Male
<input type='radio' name='gender' value='f' <?=($gender=='f')?"checked":""?>>Female
</form>

Javascript/jQueryのスイッチに適しています:

var el = $("#something");
$(el).is(':visible') ? $(el).hide("normal") : $(el).fadeIn("normal");

特に、特定の変数名がさまざまなタイプを取ることができる場合は、割り当てに適しています。

$var = ($foo->isFoo()) ? 'Success!' : false;
10
karim79

条件付き三項演算子は間違いなく使いすぎである可能性があり、一部の人はそれをまったく読めないと感じています。ただし、その意図が明確であれば、ブール式が期待されるほとんどの状況で非常にクリーンになる可能性があることがわかりました。インテントがnot clearの場合は、ifステートメントを使用して値が割り当てられた明確な名前の一時変数を使用するか、期待値を返す適切な名前の関数を使用するのが最善です。

5
Dustin Campbell

forループのようなものです。それが何のために作られているのかは理にかなっていますが、もっと多くのものを入れようとすると、読めなくなります。

4
Mehrdad Afshari