[PHP] 三項演算子の書き方などについて
PHPの調べ物をしていたら見慣れないif文の書き方に遭遇しました。三項演算子というものだったのですが、忘れそうなので書き方や注意点についてメモです。
PHP: 比較演算子 – Manual
書き方と例
基本的な書き方
[条件] ? [条件に当てはまる時の値] : [当てはまらない時の値]
書き方の例
例1)$a の 値が5より小さい場合は $data にtrue。それ以外は false を入れる。
$data = ($a > 5) ? true : false ;
例2)$a の値が5の時に $a に1を足す。それ以外はそのまま。その値を $data へ入れる。
$data = ($a == 5) ? ++$a : $a ;
注意点
if文の省略系の書き方と思ったのですが、結果を返すのみで処理をするわけではないので演算子という形のようです。
if..elseの構文ににていますが、if文とは異なり三項演算子は演算子の1つですので結果として式を返します。if文のように条件に応じた処理を記述するのではない点に注意して下さい。
三項演算子 – 条件分岐 – PHP入門
振る舞いがわかりにくくなるため入れ子にして使うのは避けた方がよいようです。
三項演算子を “積み重ねて” 使用することは避けましょう。 ひとつの文の中で複数の三項演算子を使用した際の PHP の振る舞いは、 少々わかりにくいものです。
PHP: 比較演算子 – Manual
コーディング規約で禁止されることもあるんですね。個人的には見慣れなくて理解しにくい印象ですが…。
三項演算子は true/false を返したりするならシンプルにかけて良いなと思いました。使い慣れないと式などを入れるのはためらってしまうかもしれません…。ひとつの知識としてこういうものがあると覚えておこうと思います。
No Comments & Tracbacks