icon
icon

すぐに覚えられる!PHPで三項演算子を使う方法【初心者向け】

プログラミング初心者向けにPHPで書く三項演算子の使い方について解説しています。条件演算子とも呼ばれますが、条件分岐を行う際に役立つはずです。実際にソースコードを書いて説明しているので、すぐに覚えられるはずです。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

種類多くある演算子の中で、今回はPHPで書く三項演算子の使い方について解説しています。

条件分岐を行う際に便利なので、今後覚えておくと役に立つでしょう。

そもそもPHPが何か分からない場合は、先にPHPとはの記事をご覧ください。

 

なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。
今回の記事の内容は動画でもご覧いただけます。

テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。

 

三項演算子とは

三項演算子は、条件式の真偽によって異なった式の結果を返す演算子で、条件演算子とも呼ばれます。

ある条件式と真であった場合の式・偽であった場合の式の2つを定義し、条件式の結果によってそのいずれかの式の結果を全体の式の値とします。

 

大石ゆかり

田島メンター!三項演算子って何ですか?

田島悠介

簡単に言うと、if文と同じかな。

大石ゆかり

if文と同じなんだけど、場合によっては三項演算子で書いた方が良いとかですか?

田島悠介

そうだね。とりあえず、書き方を見てみよう!

 

三項演算子の書き方

PHPの三項演算子では、以下のように条件式が真である場合と偽である場合の式を指定します。

(条件式) ? (真式) : (偽式);

ここで条件式が真である場合は(真式)、偽である場合は(偽式)の結果が式全体の値となります。

 

[PR] PHPプログラミングで挫折しない学習方法を動画で公開中

実際に三項演算子を書いてみよう

三項演算子を使用した場合の例です。

 

例1

ある変数の値を条件式に代入して、その結果が真であるか偽であるかによって異なった文字列を指定します。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $var = 200;
      $str = ($var % 5 === 0) ? "5の倍数である":"5の倍数ではない";
      echo $var."は".$str;
    ?>
  </body>
</html>

ここでは、変数$varの値が5の倍数であれば真式の「5の倍数である」の文字列を、そうでない場合は偽式の「5の倍数ではない」$strとして最後にechoで画面に出力します。

実行した場合の結果はそれぞれ以下のように表示されます。

$varの値が5の倍数であった場合(条件式が真である場合)

真式の文字列 「5の倍数である」$strとして表示されるため、以下のようになります。

php_to_1

 

$varの値が5の倍数ではなかった場合 (条件式が偽である場合)

偽式の文字列 「5の倍数ではない」$strとして表示されるため、以下のようになります。

php_to_2

 

例2

応用で簡単なクイズを作成してみます。
まず、問題とその答えを入力するフォームのHTMLファイル(test.html)を作成します。

test.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <!-- 問題文 -->
    <p>
      以下の地名の読みは?
    </p>
    <p>
      放出
    </p>
    <!-- 入力フォーム -->
    <form action="./result.php" method="post">
      <input type="text" name="answer_data">
      <input type="submit" name="send" value="送信">
    </form>
  </body>
</html>

次にフォームに入力されたデータを受け取った側(result.php)で以下のように処理します。

result.php

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      /* 入力したデータの受け取り */
      $answer_data = $_POST['answer_data'];
      /* 解答が合っているか */
      $str = ($answer_data === "はなてん") ? "正解です":"不正解です";
      /* 結果を出力 */
      echo $str;
    ?>
  </body>
</html>

入力フォームから受け取った値が正解であれば真式を、そうでない場合は偽式を画面に出力します。

(test.html)を実行し、フォームに答えを入力した場合の結果はそれぞれ以下のように表示されます。

 

正解を入力した場合

入力フォームに条件式で設定された文字列を入力し、「送信」ボタンをクリックします。

php_to_3

画面ではこのように表示されます。

受け取った文字列が正解に指定したものと同じのため、真式の方の結果の文字列「正解です」$strとして出力されます。

php_to_4

 

不正解を入力した場合

入力フォームに条件式で設定された文字列とは異なる内容を入力し、「送信」ボタンをクリックします。

php_to_5

画面ではこのように表示されます。

受け取った文字列が正解に指定したものと異なるため、偽式の方の結果の文字列「不正解です」$strとして出力されます。

php_to_6

 

おわりに

PHPで書く三項演算子について解説しました。

◯か×かといった条件分岐はif文を利用するよりも手軽に書けるので、ぜひ実際に書いてみてください。

 

大石ゆかり

条件があって、当てはまる時はクエスチョンマークのところが、そうじゃない時は、コロンの右の値を返すんですね。

田島悠介

その通り!

大石ゆかり

if文でも出来そうですね。ifには、もしって意味があるし、わかりやすいですよね。

田島悠介

そうだね。ただ、ifは基本的に分岐(ぶんき)なんだ。簡単な条件で、2つの値のうち、どちらかが返ってくる場合とかは三項演算子のほうがきれいに書けるんだよ。

 

PHPを勉強していて、

  • もっと効率的に勉強したい
  • 誰かに聞きながら学びたい
  • 自分でWebサービスを作りたい
1時間でできる無料体験!

と思ったことはないでしょうか。

 

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、オリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する