PHP

【PHP】if文を省略して記述する三項演算子の書き方・使い方

本記事では、条件分岐のif文を省略して記述することができる三項演算子の書き方・使い方について解説しています。

PHPの学習におすすめ参考書
気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!

本書情報
著者谷藤 賢一
発売日2017/3/6
ページ数331ページ
Kindle版
レビュー
(Amazon)
(168件)

参考書が苦手な人はUdemyの動画がおすすめ
ちゃんと学ぶ、PHP+MySQL(MariaDB)入門講座

動画情報
作成者たにぐち まこと
学習時間11時間
受講者数24,526人
レビュー (4,518件)
動画の詳細はこちら

三項演算子の書き方・使い方

三項演算子の書き方は以下のとおりです。分かりやすいようにif文も掲載しています。

/* ↓if文を使った書き方 */
if(条件式) {
    // true時の処理
} else {
    // false時の処理
}

/* ↓三項演算子を使った書き方 */
条件式 ? true時の処理 : false時の処理;

if文の条件分岐よりも三項演算子を使った条件分岐の方が記述量が圧倒的に少なくシンプルなコードになっていることが分かります。

三項演算子の使い方
  • 条件式:if文の()内で記述する条件式
  • true時の処理:「:」より前に処理を記述
  • false時の処理:「:」の後に処理を記述

三項演算子はあくまで演算子の一つなので、結果として値を返します。そのため、if文のように$変数 = 値のように記述する必要がありません。

<?php 
$sex = 'Man';
$msg = $sex === 'Man' ? '私は男性です' : '私は女性です';
print_r($msg);
?>

三項演算子のサンプルコード

下記のサンプルコードでは、変数$sexにMan(男性)またはWoman(女性)を判別するための文字列が代入されています。変数$sexの文字列がManの場合は「私は男性です」を出力し、Womanの場合は「私は女性です」を出力します。

<?php 
$sex = 'Man';
$msg = $sex === 'Man' ? '私は男性です' : '私は女性です';
print_r($msg); // -> 私は男性です

$sex = 'Woman';
$msg = $sex === 'Man' ? '私は男性です' : '私は女性です';
print_r($msg); // -> 私は女性です
?>
サンプルコード表示結果
サンプルコード表示結果

上記の画像はサンプルコードの実行結果になります。1回目の処理では「私は男性です」が表示され、2回目の処理では「私は女性です」が表示されていることが確認できます。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村