PHP PHP入門講座 プログラミング

【PHPプログラミング入門講座】三項演算子

PHPプログラミングのキービジュアル

if文を1行で書く

次の内容をif文で書いてみましょう。

数値型の変数$numの値が10以上の場合、変数$labelに文字列「YES」を代入する。
そうでなければ、変数$labelに文字列「NO」を代入する。

次のようになります(※注1)。

if($num >= 10) {
  $label = 'YES';
} else {
  $label = 'NO';
}

では、これを1行で書いてみてください。

実はPHPプログラムは次のように1行で書くこともできます。

if($num >= 10) { $label = 'YES'; } else { $label = 'NO'; }

この書き方は正しいです。
ただ、プログラムが横に長いです(笑)

このような場合は「三項演算子」を使うと、シンプルに記述することができます。

三項演算子とは

三項演算子は、「?」と「:」を使って、シンプルに条件分岐をする記述方法です。
構文は次の通りです。

<構文>

変数A = 条件1 ? 値a : 値b;

「条件1」を判定し、「条件1」がtrueの場合の値は「値a」を、falseの場合は「値b」を「変数A」に代入します。

この三項演算子を使うと、最初のPHPプログラムは次のように記述することができます。

$label = ($num >= 10) ? 'YES' : 'NO';

「$num >= 10」を判定し、trueの場合は「YES」を、falseの場合は「NO」を変数$labelに代入します。

サンプルプログラム

いくつかサンプルプログラムを書きます。

サンプルプログラム1

<?php
  $num = 20;
  $label = ($num >= 10) ? 'YES' : 'NO';
  echo $label;

<実行結果>

YES

変数$numの値は20であるため、「$num >= 10」はtrueになります。結果、「YES」が変数$labelに代入されます。

サンプルプログラム2

<?php
  $color = 'red';
  $action = ($color === 'blue') ? 'GO' : 'STOP';
  echo $action;

<実行結果>

STOP

変数$colorの値は「red」であるため、「$color === 'blue'」はfalseになります。結果、「NO」が変数$actionに代入されます。

おわりに

三項演算子はif文で書くことができますが、三項演算子を使った方が、プログラムの行数が減り見やすくなるので、必要に応じて使いましょう。

PHPプログラミング入門講座 〜 全記事一覧 〜

-PHP, PHP入門講座, プログラミング
-, , ,

Copyright© ハッピー・プログラミング・ライフ , 2020 All Rights Reserved.