• Xでシェア
  • LINEでシェア
  • このエントリーをはてなブックマークに追加

PHP else文の使い方

この記事のポイント

  • PHPにおけるelse文の基本原理と正しい使い方
  • if文との組み合わせによる効果的な条件分岐と実装方法
  • 実務で役立つ|elseとelseifを活用した実践的コード例

目次

PHPのelse文とは?

PHPのelse文は、条件分岐構造の一部であり、if文と組み合わせて使うものです。if文で指定した条件が偽(false)の場合に実行されるコードブロックを定義するために使われます。

else文をわかりやすく例えると、「もし〇〇ならAを実行し、そうでなければBを実行する」という日常的な意思決定プロセスをプログラムで表現したものでしょう。else文は常にif文と対で使うため、単独で使用されることはありません。

else文は、PHPプログラミングの「代替処理」や「例外処理」、「デフォルト処理」を実装する際に非常に重要な役割を果たします。ユーザー認証、入力値の検証、エラーハンドリングといったさまざまな場面で利用されるでしょう。

またPHPでは、elseif文(またはelse if文)も提供しています。elseif文を使うと、複数の条件を連続して評価できます。elseif文は、複雑な条件分岐の効率的な実装を可能とするものです。

条件分岐は、プログラミングにおける基本中の基本です。else文の適切な使用法を理解することは、PHPアプリケーション開発において効率的で読みやすく、保守しやすいコードを書くための必須スキルといえるでしょう。

【関連】
PHPをもっと詳しく学ぶならpaizaラーニング

基本構文

PHPのelse文は、条件が偽の場合に実行される代替処理を定義します。また、elseifを使うと、追加条件の評価が可能です。

コードブロックは波括弧で囲む形になりますが、単一命令では省略可能です。しかし、プログラムの可読性を高めるうえでは、常に使用することが推奨されます。また、条件分岐は入れ子にすることも可能です。HTML内では代替構文も活用できるでしょう。

// 基本的なif-else構文 if (条件) { // 条件が真の場合に実行されるコード } else { // 条件が偽の場合に実行されるコード } // if-elseif-else構文 if (条件1) { // 条件1が真の場合に実行されるコード } elseif (条件2) { // 条件1が偽で、条件2が真の場合に実行されるコード } else { // すべての条件が偽の場合に実行されるコード }

実用例

このセクションでは、PHPのelse文とelseif文の実践的な使い方を理解してもらうために、さまざまなシナリオを通じて開発現場でも使えるコード例を紹介しましょう。PHPプログラミングを学習中の皆さんのために、else文とelseif文の基本的な使い方から応用例までを段階的に解説していきます。

else文とelseif文を深く理解し、開発現場で使えるようになるためには、自分の開発環境にコードを実装してみる経験が大切になります。このセクションで紹介するコード例は、皆さんがすぐに実装できるものばかりです。

コードに触れるなかでは、「想定外の動作をする」や「なぜかエラーが出る」といったトラブルに直面するかもしれません。しかし、こうした想定外への対処を行い「壁」を乗り越えると、else文とelseif文の知識だけでなくPHPに不可欠な判断力なども次第に身についてきます。

失敗を恐れることなく、積極的にコードを実装してみてください。

単純な条件分岐

以下のコード例は、最も基本的なif-else文の使い方です。単一の条件に基づいて2つの異なる処理パスを定義しています。

以下の構造は「二者択一」の状況を表現するのに最適であり、ユーザー入力の検証や認証状態の確認、単純な条件付きメッセージ表示といった多くの場面で活用できるものです。以下のテクニックを使うとコードの流れが明確になり、理解しやすいプログラムが作成できるでしょう。

<?php $animal = "ネコ"; if ($animal == "イヌ") { echo "イヌは忠実なペットです。"; } else { echo "この動物はイヌではなく" . $animal . "です。"; } ?>

出力結果:

この動物はイヌではなくネコです。

elseif文による複数条件の評価

複数の条件を順次評価する必要がある場合は、elseif文を使いましょう。以下のコード例で使ったelseif文は、「多岐選択」を実装する際に有効なテクニックです。

最初の条件が偽の場合に次の条件を評価し、それも偽ならさらに次の条件へと進みます。このアプローチは、変数が複数の具体的な値を取り得るケースで特に適したものとなります。コードの可読性を保ちつつ、複雑な分岐ロジックを実装できるテクニックでしょう。

<?php $animal = "パンダ"; if ($animal == "イヌ") { echo "イヌは忠実な動物です。"; } elseif ($animal == "ネコ") { echo "ネコは独立心の強い動物です。"; } elseif ($animal == "パンダ") { echo "パンダは竹を主食とする動物です。"; } else { echo "これは一般的なペットではないようです。"; } ?>

出力結果:

パンダは竹を主食とする動物です。

三項演算子での条件分岐

三項演算子(?:)を使用すると、簡潔な条件分岐の実装が可能となります。

この三項演算子はif-elseの短縮形であり、変数に値を条件付きで代入するケースで特に役立つものです。条件が真であれば最初の値を、偽のときは2番目の値を返します。

ただし、三項演算子にはコードを簡潔にできる一方で、複雑な条件では可読性の低下につながる特性があります。コードの読みやすさに配慮しながら、適切に使用することが大切でしょう。

<?php $animal = "カンガルー"; $hasPouch = true; $type = $hasPouch ? "有袋類" : "有袋類ではない"; echo $animal . "は" . $type . "です。"; ?>

出力結果:

カンガルーは有袋類です。

ネストされた条件分岐

条件分岐のなかに別の条件分岐を入れることで、より複雑な決定ロジックを実装できます。ネストと呼ばれるこのテクニックは、いわゆる「入れ子」のことです。「階層的意思決定」を表現する際に役立つものとなります。

以下のコード例は、最初の条件で大まかな分類を行い、その結果に基づいてさらに詳細な条件評価を行うコード例です。ただし、過度のネストは可読性を大幅に下げる可能性があります。一般的には、3レベル以上のネストは避けたほうがよいでしょう。

<?php $animal = "ペンギン"; $canFly = false; if ($animal == "ペンギン") { echo "これはペンギンです。"; if ($canFly) { echo "このペンギンは飛べます。"; } else { echo "このペンギンは飛べません。"; } } ?>

出力結果:

これはペンギンです。このペンギンは飛べません。

elseでのデフォルト処理

else節は、すべての条件が満たされなかった場合のデフォルト処理として効果的に使えるものです。これは「想定外のケース」や「その他すべて」を処理する際に非常に役立ちます。エラーハンドリングや、予期しない入力値に対するフォールバック処理の実装に適したテクニックです。

<?php $userInputAnimal = "サイ"; $validAnimals = ["イヌ", "ネコ", "ウサギ"]; if (in_array($userInputAnimal, $validAnimals)) { echo $userInputAnimal . "の情報を表示します。"; } else { echo $userInputAnimal . "の情報はありません。"; } ?>

出力結果:

サイの情報はありません。

複数の条件と論理演算子

論理演算子(&&, ||, !)とelse文の組み合わせは、複雑な条件評価を行ううえで役立ちます。このテクニックで実装できるのが「複合条件による分岐」であり、より細かな状況判断が可能となります。

例えば、ユーザーの年齢と会員状態の両方に基づいてコンテンツアクセスを制御するなどの場面で活用できるでしょう。

<?php $animal = "ライオン"; $age = 5; $isMale = true; if ($animal == "ライオン" && $age < 2) { echo "これは子ライオンです。"; } elseif ($animal == "ライオン" && $isMale) { echo "これはオスライオンです。"; } else { echo "これはメスライオンです。"; } ?>

出力結果:

これはオスライオンです。

関数内での使用

関数内でif-else文を使用すると、入力パラメータの検証や条件に基づいた返り値の決定などを実装できます。特に「早期リターン」パターン(無効な入力に対して早い段階でリターンする)はコードの可読性と保守性を高める効果的な方法です。

また、複雑な条件ロジックをカプセル化することで、メインコードをよりシンプルに保てます。

<?php function getAnimalSound($animal) { if (empty($animal)) { return "エラー: 動物名が未指定"; } if ($animal == "イヌ") { return "ワン!"; } elseif ($animal == "ネコ") { return "ニャー!"; } else { return "鳴き声は登録されていません"; } } echo getAnimalSound("ネコ"); ?>

出力結果:

ニャー!

まとめ

PHPのelse文とelseif文は、条件分岐を実装するための強力ツールです。これらを適切に使用することで、プログラムの流れを制御し、さまざまな状況に対応できる柔軟なコードを作成できます。

if-elseは、基本的な二者択一の状況で最適な構造です。

そこにelseif文を加えることで、複数条件を順次評価する多岐選択が可能となります。また、条件分岐はネストすることで階層的な判断ロジックを実装できますが、可読性のためにネストは浅く保つことが理想でしょう。

簡潔なコードが書くうえでは、三項演算子を使うのも一つです。しかし、複雑な条件では通常のif-elseのほうが明確なコードを作成できます。このほかに代替構文はHTMLとPHPを混在させたコードで特に有用であり、テンプレートシステムでよく使用されるものでしょう。

効果的な条件分岐を実装するためには、条件を明確に定義し、コードの流れを論理的に保ったうえで、デフォルトケース(else節)を常に用意することがベストプラクティスです。これらの原則に従うことで、より堅牢で保守しやすいPHPアプリケーションを開発できるでしょう。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. リファレンス
  3. PHPのリファレンス記事一覧
  4. PHP else文の使い方