三項演算子でif文を実施したい時に何を求めて調べているかといえば、判定結果の真偽値が右か左かどっちだったかという事なんですが、大体の記事で「ifでかくとこれと同じです」とか回りくどい内容が出てきます。
知りたいのはこれだけ。
(条件式) ? (真式) : (偽式);
|
// (条件式) ? (真式) : (偽式); // flag = 0 : status quo // flag = 1 : evolution $magikarp_level = 19; $evolution_flag = ($magikarp_level >= 20) ? "1" : "0"; // $evolution_flag : "0" |
「左が条件に一致する」時の結果、「右が一致しない」時の結果なので、この例だとコイキングはまだレベル19なので進化フラグが”0″のままでギャラドスになれないという事になります。
※ちなみに三項演算子の左側だけが必要な場合はこんな感じで書けます。
|
$conditions && $result=1; |
$conditions==true の場合のみ $result=1になります。
三項演算子は行が短くなるものの読みにくくなるため、基本的にはif~elseの方が望ましく、処理を切替えたいならif文を使い、変数の値を切替えたいなら三項演算子使うといった使い分けが良いはずです。
当たり前ですが行数を短くするよりも、他人が理解するのにかかる時間を短くすべきです。