zukucode
主にWEB関連の情報を技術メモとして発信しています。

PHP switch文の基本的な使い方と注意点

PHPswitch文の基本的な使い方を紹介します。

PHP If,else,elseif文の基本的な使い方if文の基本的な使い方について説明しましたが、elseifの数が増えてくると、可読性や保守性が悪くなってしまいます。

例えば以下のような分岐処理で、比較対象を$aではなく$a + 1$bなどに条件を変更したい場合、elseifの箇所をすべて修正する必要があります。

$a = 2;
if ($a == 1) {
  echo 'aは1です';
} elseif ($a == 2) {
  echo 'aは2です';
} elseif ($a == 3) {
  echo 'aは3です';
} elseif ($a == 4) {
  echo 'aは4です';
}

elseifの数が多いときはswitch文を使用することが多いです。

上記の処理をswitchに置き換えると以下のようになります。

$aを基準に各caseの値と比較を行っていきます。

どのcaseにも当てはまらなかった場合はdefaultの処理が実行されます。

$a = 2;
switch ($a) {
  case 1:
    echo 'aは1です';
    break;
  case 2:
    echo 'aは2です';
    break;
  case 3:
    echo 'aは3です';
    break;
  case 4:
    echo 'aは4です';
    break;
  default:
    echo 'aは1,2,3,4以外です';
    break;
}

// 実行結果
// aは2です

switch 値Acase 値Bの値がイコールの場合に以降の処理が実行されます。

JavaScriptではswitch文のイコールは型も含めて完全に一致することが条件でしたが、PHPは型は違っていても問題ありません。

例えば以下のようにaが文字列の場合で、caseが数値でもイコールと判定されます。

$a = '2';
switch ($a) {
  case 1:
    echo 'aは1です';
    break;
  case 2:
    echo 'aは2です';
    break;
  case 3:
    echo 'aは3です';
    break;
  case 4:
    echo 'aは4です';
    break;
  default:
    echo 'aは1,2,3,4以外です';
    break;
}


// 実行結果
// aは2です

case処理の最後にbreakコマンドを追加しなければ次のcase処理も実行されてしまいます。

以下の例では、case 2の処理の最後にbreakがないため、以降のcase 3,case 4,defaultの処理も実行されてしまいます。

breakがない場合
$a = 2;
switch ($a) {
  case 1:
    echo 'aは1です';
  case 2:
    echo 'aは2です';
  case 3:
    echo 'aは3です';
  case 4:
    echo 'aは4です';
  default:
    echo 'aは1,2,3,4以外です';
}

// 実行結果
// aは2です
// aは3です
// aは4です
// aは1,2,3,4以外です

関連記事

  • WEBアプリでプッシュ通知を実装する

    WEBアプリでプッシュ通知を実装する方法を紹介します。googleが紹介している以下のページを参考にしました。ウェブアプリへのプッシュ通知の追加  |  Web  |  Google Develope...


  • PHP インストールされているモジュールの一覧を表示する

    PHPでインストールされているモジュールを一覧表示する方法を紹介します。ターミナルやコマンドプロンプトで以下のコマンドを実行します。コマンドを実行するとインストールされているモジュールの一覧が表示され...


  • PHP If,else,elseif文の基本的な使い方

    PHPのif文の基本的な使い方を紹介します。JavaScriptでのif文の使用方法をJavaScript If,else,else if文の基本的な使い方で紹介しましたが、他の言語でのif文とは文法...


  • PHP for文の基本的な使い方

    PHPのfor文で指定した回数だけループで同じ処理を行う方法を紹介します。ループする回数が固定の場合は以下のように指定します。以下のように指定した場合はfor文で囲った処理を5回ループして実行します。...


  • LinuxでPHPのcurlをインストール・有効化する方法

    Composerなどでcurlを使用するパッケージをインストールするとき、curlがインストールされていないと以下のエラーが発生することがあります。対処法として、以下のコマンドでcurlをインストール...


  • Composerでパッケージのインストール時にエラーになったときの対処法

    Composerでパッケージをインストールするときに以下のようなエラーになってしまうことがあります。XXXの部分はインストールするパッケージで必要だが、自身の環境にインストールされていないパッケージで...


  • PHP 配列をfor文で要素数の数だけループする

    PHPの配列をfor文で要素数の数だけループする方法を紹介します。for文の基本的な使い方についてはPHP for文の基本的な使い方で紹介しています。また、配列の要素にアクセスする方法はPHP 配列を...


  • PHP 連想配列をループしてkeyとvalueを列挙する

    PHPの連想配列をループしてkeyとvalueを列挙する方法を紹介します。連想配列とはkeyとvalueを持つ配列です。以下のように、foreachのasに$key = $valueの形式で指定すると...


  • PHP 配列や連想配列の長さ(要素数)を取得する

    PHPで配列や連想配列の長さ(要素数)を取得する方法を紹介します。配列や連想配列の長さを取得するにはcountを使用します。連想配列については長さというよりも要素数を取得するといったほうがわかりやすい...


  • PHP 配列の先頭や末尾に要素を追加する

    PHPの配列の先頭や末尾に要素を追加する方法を紹介します。PHPで配列の末尾に要素を追加するにはarray_pushを使用します。以下のように、array_push(配列, 追加する要素)の形式で指定...