
初歩的な話かと思われますが、以下のような例文があるとします。
switch ( $val ) {
case 0:
~処理A~
case 1:
~処理A~
case 2:
~処理A~
case 3:
~処理A~
case 4:
~処理B~
case 5:
~処理B~
}
仮に、「~処理A~」部分の記述内容が全て同じだとします。
今まで、素人なわたしは「~処理~」部分を「shoriA.php」などに書き出して、
「~処理A~」部分に「require_once( "shoriA.php" );」と書いてきました。
これを、1つのPHPファイル内で完結した書き方をするとしたら、
どう書くとスマートな書き方になりますか?
functionなどを使うのでしょうか。
No.2ベストアンサー
- 回答日時:
switch ( $val ) {
case 0:
case 1:
case 2:
case 3:
~処理A~
case 4:
case 5:
~処理B~
}
このタイプの分岐には、言語によって、ラベル(PHPではcase)を飛び越えて処理する「フォールスルー」と呼ばれるものと、次のラベルに達した時点で終了するものとがあります。
PHP はフォールスルーなので、上のような書き方ができます。
breakを書く、というのをお約束のようにやっているかと思いますが、そこで終了させることで別のcase以下を実行しないようにするためのものです。breakをわざと書かないことによって、複数のcaseに対応させることが可能です。
まあ、この方法を使ったとしても、処理が長ければfunction等で別に書くのがよいです。
kmeeさん、ご回答ありがとうございました。
No1さんのお礼にも書きましたが、こんな書き方ができるとは思いませんでした。
breakを書く、というのをお約束も思い込みでしたね。
「フォールスルー」という言葉も覚えておきます。
大変勉強になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
PHPの変わった閉じタグの必要性...
-
phpのheader("Location:#pos")...
-
.htaccessにphp_valueが使用できな
-
mysql→EUC-JP、php→UTF-8の時の...
-
2つの画像ファイルが異なるファ...
-
require_once()でファイルが読...
-
phpの中でphpを書けないか
-
FTPコマンドでディレクトリごと...
-
MkDir関数
-
【file_exists】ファイルが存在...
-
sqlで日付が一番古いデータの月...
-
フォームで戻った際に入力済み...
-
<A href ~ と一緒に値を渡すには
-
テレメールとは?
-
「クラス関数」「メンバ関数」...
-
Makefile.inとMakefile.am
-
現在位置より2つ上のディレク...
-
さくらインターネットでメール...
-
PHPでメールを受信するには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
リロードの防止法
-
RSSパースに使用する関数・ライ...
-
3の倍数の和
-
Cronで同じ処理を複数同時に実...
-
データベースのレコードを入れ...
-
アクセスクライアントごとにタ...
-
Smartyにて、文字検索
-
phpの処理中に画面表示ををする...
-
プログラム内で処理中断後も継...
-
インスタンス化に伴うメモリ消...
-
条件演算子
-
GETリクエストでURLを渡す時
-
コンストラクタについて
-
csvファイルの読込みとソート
-
includeしたファイルに変数を持...
-
PHPが処理を途中でやめる。原因...
-
PHPで文字列(日本語)の比較
-
PHP postgres でロールバック...
-
入れ子になっているHTMLタグも...
おすすめ情報