• ベストアンサー

phpのswitch文のcaseで

phpのswitch文のcaseで switch ( $a ) case "1", "2", "a": のように、カンマで並べる事はできないのでしょうか?

  • ne5
  • お礼率4% (5/124)
  • PHP
  • 回答数3
  • ありがとう数14

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

リファレンスによると下記のような記述も可能らしいです。 <?php switch($beer) { case 'ツボルグ'; case 'カールスバーグ'; case 'ハイネケン'; echo ' いいっすねぇ'; break; default; echo 'ほかのを選んでみませんか?'; break; } ?> PHP: switch http://jp.php.net/manual/ja/control-structures.switch.php

その他の回答 (2)

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.3

結論から言うと、カンマで並べるやり方は聞いたことがありません。 case で指定されたものが true になった行から break; までを実行します。 なので、俺も良くやるのは #1さんの方法です。

  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.2

caseで式が使えるよ。 ( 式によっては必要に応じて(bool)等でキャストしてね。) $a = 'a'; $caseA = array('1','2','a'); switch($a){ case in_array( $a, $caseA); ~

関連するQ&A

  • PHPについて質問です。(switch文)

    PHPについて質問です。(switch文) 前のフォームのテキストフィールドから受け取った"fn"の値を使ってswhitch文で判定したいです。 <?php $a = $_POST['fn']; switch( $a ){ //←ここが予期せぬエラーとでました。 case 1: echo '$aは1です。'; break; case 2: echo '$aは2です。'; break; case 3: echo '$aは3です。'; break; default: echo '$aは1・2・3のいずれでもありません。'; } ?> どこらへんがいけないのですか?

    • ベストアンサー
    • PHP
  • PHPのswitch文について

    こんにちは。 switch文を使って、 hogehoge.php?mode=admin や、 hogehoge.php?mode=admin&setting1 などのように、 hogehoge.phpの後に?○○=□□&△△のような好きな文字を入れたいのです。 あるPHPスクリプトを参考に、下のようにしてみたのですが、まったく動作しません。 switch ($_GET['mode']) { case "admin" : $inc_file = "./admin/"; break; } また、?mode=admin&setting1のように&を付ける方法がわかりません。 上のようにする場合は、どうすればよいでしょうか? よろしくおねがいします。 また、分からない部分があったら、補足要求お願いします。

    • ベストアンサー
    • PHP
  • switch文の使い方について

    switch文で比較をさせたいのですが、その場合 switch()の括弧のなかはどうすれば良いのですか? int a,b; switch(){ case(a<b): break case(a>b): break } どなたか知っている方おしえてください。

  • phpのSwitch文のswitchってそもそもど

    phpのSwitch文のswitchってそもそもどういう意味なんでしょうか? ifはわかります もしもこういう場合は というので switchってなんですか?電源を押すみたいな意味ですか?

    • ベストアンサー
    • PHP
  • phpのswitch文

    お世話になります。下記のようなフォームがあります。 <form method="post"><input type="submit" value="新規登録" name="registration"><form method="post"><input type="submit" value="一覧" name="list"></form> 新規登録と一覧、2つのボタンがあるのですが押されたボタンによって処理を区別したいです。 データを受け取るPHP内に下記のように記述したのですが思い通りの結果になりません。アドバイスを宜しくお願いします。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー <?php switch(ココの記述が判りません){ //新規登録画面を表示 case "registration": print "新規登録!"; break; //一覧を表示 case "'list', )": print "一覧表示"; break; default: print "ココがデフォルト表示"; } ?> ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー if文だとif(isset($_POST["registration"])){の記述で分岐できたのですが、条件分岐が多いのでswitch文で書きたいです。 宜しくお願いします

    • ベストアンサー
    • PHP
  • C言語switch文のcase記述について

    switch文のcaseがたくさんあるため、ソースファイルとして外だししたいと思っています。 ただ、switch文そのものはきちんと記述し、caseの部分だけを外だしできればと考えています。 例 switch (a) { case 1: case 2: : :(たくさん続く) 処理A; case 100; case 101; : : (これまたたくさん続く)  処理B; } を switch (a) { A_WO_SURU_JOUKEN  /* この記述を外だししたい */ 処理A; B_WO_SURU_JOUKEN /* 同じく */ 処理B; } といった具合にしてみたいということです。 ヘッダファイルを使う、defineでの記述で可能といったものを教えていただければ幸いです。

  • switch文caseについて

    switchのcaseについてですが、数字を直接記述せずに、const変数に値を代入して使用出来ますか? 例) const int A = 1; const int B = 2; switch(suuti){ case A: 処理; break; case B: 処理; break; } コンパイルすると、「case 式は、整数型定数でなければなりません。」と出てきてしまうのですが、直接数値を記述しないといけないのでしょうか? よろしくお願いします。

  • phpのswitch文について switchはif

    phpのswitch文について switchはifと違って、条件式の中がブール型の論理演算とかではないんですか? 完全に1つの値とかなんですかね? $num1>5とかそういうのは入らないんですか?

    • ベストアンサー
    • PHP
  • switch文について

    switch文の、switch(a)←このaの部分について分からない事があります。 例) void WRITE(void){ char str; fgets(str,8,stdin); puts(str); swicth(str){ case ??:実行文1;break; case ??:実行文2;break; ・ ↑    ・    default:break; } } としたとき、矢印の「??」の部分には文字列を指定することが可能でしょうか? 例えば、「RX」が入力されたら実行文1、「TX」が入力されたら実行文2・・・というようにしたいのですが、どう指定したらいいのかがわかりません。一文字だけなら「''」で囲むのはわかるのですが、文字列となると・・・ どなたかご教授願えませんでしょうか?

  • phpのswitch文で必ずdefault処理さる

    phpでswitch文を使って変数の値に応じて処理を変えたいのですが、なぜか常にdefault処理をされてしまいます。 htmlの別ファイルから例えば"テスト,テスト2,テスト3"という文字列を受け取って strtok()を使って、$aに"テスト", $bに"テスト2", $cに"テスト3"と入るようにしました。 それで$aには"テスト"の文字列が入っているはずなので、 switch($a){ case "テスト":~~/処理 break; default:~~//処理 break; } と書いた場合、case "テスト" の処理がされるはずだと思うのですが、 なぜかdefaultの場合の処理がされてしまいます。 gettype($a); で$aの型を調べると、string型になっていおり、 $aの中身を echo "a: {$a}"; で確認すると 「a: テスト」と表示されます。 しかし、if文で if($a == "テスト"){ echo "a match テスト"; } else{ echo "not match"; } のように書いてみると、 「not match」が表示されます。 この理由が分かりません。  この理由が分かる方はいらっしゃいますか? 解決策を教えてください。 また、もしかしたら$aにはecho や print()では表示されない文字が 付属しているのかもしれないと考えていますが、 echoやprint()で表示されない文字を表示させる方法はありますか?

    • ベストアンサー
    • PHP

専門家に質問してみよう