Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP】三項演算子の書き方と使い方の基本

この記事では、PHPの三項演算子の基本的な書き方と使い方を学びます。三項演算子は、if-else文を使った条件分岐をより短く、簡潔に記述するための便利な機能です。開発環境の準備から始め、具体的なサンプルコードを通して、条件に応じて変数の値を効率的に設定する方法をステップバイステップで理解できます。コードの可読性を高め、シンプルな条件分岐をスマートに実装するスキルを習得しましょう。

作成日: 更新日:

開発環境

  • OS: Windows10
  • Editor: Visual Studio Code
  • PHP: 8.0以降

PHPの三項演算子とは

三項演算子は、if-else 文を短く書くために使われる特別な演算子です。これは、特定の条件が真(true)か偽(false)かによって、異なる値を設定したい場合に利用されます。

通常、条件に応じて処理を分岐させる際にはif-else文を使用しますが、三項演算子を使うことで、その処理をより簡潔に1行で記述することができます。これにより、コードの行数を減らし、見た目をすっきりとさせることが可能です。

例えば、ある条件が満たされたら変数に特定の値Aを代入し、満たされなければ別の値Bを代入するといった、シンプルな条件分岐で変数の値を決定したい場合に、三項演算子は非常に役立ちます。短い記述でロジックを表現できるため、コードの可読性も向上します。

サンプルコード

php/chapter11/01.php

このコードでは、変数$ageに数値「20」を代入しています。この$ageという変数を使い、次のコードで条件分岐の処理を行います。年齢が成人か未成年かを判断するための準備として、まず年齢を設定しています。

01.php
1<?php
2// 例1: 成人か未成年を表示
3// 年齢が20歳以上であれば成人、そうでない場合は未成年と表示する
4// 年齢を設定する
5$age = 20;
6

php/chapter11/02.php

このコードでは、if文を使用して$ageの値に応じて処理を分岐させています。 if ($age >= 18)の部分で、「$ageが18以上である」という条件を判定しています。この条件が正しい(真)場合、{}(波括弧)の中の処理が実行され、$status変数に「成人」が代入されます。 もし条件が正しくない(偽)場合、elseの後に続く{}の中の処理が実行され、$status変数に「未成年」が代入されます。 最後にecho $status;で、$statusに代入された文字列を表示しています。このように、if文を使うことで、条件によって異なる処理を行うことができます。

02.php
1<?php
2// if 文を使用する場合
3if ($age >= 18) {
4    $status = '成人';
5} else {
6    $status = '未成年';
7}
8
9echo $status;
10

php/chapter11/03.php

このコードでは、「三項演算子」を使用して、先ほどのif文と同じ条件分岐をより簡潔に記述しています。 三項演算子は条件 ? 真の場合の値 : 偽の場合の値という形式で書かれます。 ($age >= 18)が条件です。この条件が真であれば「成人」が選択され、偽であれば「未成年」が選択され、その結果が$status変数に代入されます。 if文と比較して、1行で記述できるため、簡単な条件分岐の場合にコードを短くすることができます。

03.php
1<?php
2// 三項演算子を使用する場合
3$status = ($age >= 18) ? '成人' : '未成年';
4
5echo $status;
6

php/chapter11/04.php

このコードでは、変数$numberに数値「-5」を代入しています。この$numberという変数を用いて、次のコードで数値が「正の数」か、「負の数」か、または「ゼロ」かを判定する条件分岐の処理を行います。

04.php
1<?php
2// 例2: 数値が正の数か、負の数か、またはゼロかを判定する
3// 数値が0より大きければ「正の数」、0より小さければ「負の数」、0なら「ゼロ」と表示する
4// 数値を設定する
5$number = -5;
6

php/chapter11/05.php

このコードでは、複数の条件を判定するためにif、elseif、else文を使用しています。 まずif ($number > 0)で、「$numberが0より大きいか」を判定します。この条件が真であれば$resultに「正の数」が代入されます。 最初のif文の条件が偽だった場合、次にelseif ($number < 0)の条件、「$numberが0より小さいか」を判定します。この条件が真であれば$resultに「負の数」が代入されます。 もし、どのifやelseifの条件も真にならなかった場合、最後にelseブロックの処理が実行され、$resultに「ゼロ」が代入されます。 このようにelseifを使うことで、2つ以上の条件を順番に評価し、それぞれ異なる処理を実行できます。

05.php
1<?php
2// if 文を使用する場合
3if ($number > 0) {
4    $result = '正の数';
5} elseif ($number < 0) {
6    $result = '負の数';
7} else {
8    $result = 'ゼロ';
9}
10
11echo $result;
12

php/chapter11/06.php

このコードでは、複数の条件分岐を三項演算子を使って表現しています。三項演算子を条件 ? 真の場合 : 偽の場合のように、さらにその「偽の場合」に別の三項演算子を記述することで、複数の条件を入れ子にして判定しています。 具体的には、($number > 0) ? '正の数'で「$numberが0より大きいか」を判定し、真であれば「正の数」となります。 もし偽であれば、次の(($number < 0) ? '負の数' : 'ゼロ')という部分が実行されます。ここで再度「$numberが0より小さいか」を判定し、真であれば「負の数」、偽であれば「ゼロ」となります。 このように三項演算子を入れ子にすることで多分岐も記述できますが、複雑になるとコードが読みにくくなることがあります。そのため、複数の条件を扱う場合は、先ほどのif、elseif、else文を使用する方が一般的に推奨されます。

06.php
1<?php
2// 三項演算子を使用する場合
3$result = ($number > 0) ? '正の数' : (($number < 0) ? '負の数' : 'ゼロ');
4
5echo $result;
6

おわりに

今回の記事では、PHPの三項演算子の基本的な書き方と使い方を学習しました。三項演算子を使うことで、if-else文で記述するようなシンプルな条件分岐を、より短く1行で表現できることを理解しました。これにより、条件に応じて変数の値を効率的に設定し、コードを簡潔に保つことができます。例えば、年齢によって「成人」か「未成年」かを判定するような処理を、スマートに記述できることを確認しましたね。複雑な条件分岐では可読性を考慮する必要もありますが、まずは基本的な使い方をしっかり身につけていきましょう。

関連コンテンツ