PHPの条件分岐ではif文をよく使いますが、1行で条件分岐できるのでたまに見かけますね。
ただ、独特の記述になるのと、型を意識しないと思わぬ挙動となるため、嫌われている存在でもあります。
使うことがない人も、他人のソースコードを理解できるように意味を分かっておくと、作業も進みますし、これを機会に覚えてみませんか?
三項演算子の書き方
三項演算子は以下のように一行で書くことができます。
以下のように条件式のあとに?
(ハテナ)を入れ、TRUE・FALSEの値を:
(コロン)を挟んで書きます。
書式
(条件式) ? ‘TRUEの場合’ : ‘FALSEの場合’;
サンプル
年齢を元に、成人か未成年かを判定するプログラムを書いてみましょう。
1 2 3 |
$age = 19; $val = ($age >= 20)? '成人です。' : '未成年です。'; echo $val; |
以下のように表示
未成年です。
あまり見慣れない三項演算子
一見便利そうな三項演算子ですが、あまりメジャーではないようです。
コーディング規約で禁止されていたり、見慣れないことから採用されない例も多いのだとか。
確かに、このコードが出てきたら「コレどうなっとるんだっけ?」と戸惑ってしまいました。
リファレンスなどで調べたらすぐ分かるんですがね。
まぁ、積極的に使わないにしても、サンプルや他人様が書いたコードで三項演算子が出てくることもあるので、知っておいて損はないでしょう。