• ベストアンサー

phpのこの画像のプログラムについて教えてください

asciizの回答

  • asciiz
  • ベストアンサー率70% (6672/9459)
回答No.4

switch 文において、case XXX: と言う行は、「ラベル」なのです。 なので、 switch ($num1) において、$num1=5 の時、 「case 5: と言うまとまりを実行する」 のではありません。 「case 5: の位置にジャンプする」 だけなのです。 そうすると、「case 5:」の位置に制御が移ったあと、 case 5: ←位置を示すだけのラベルであるので何の動作もしない echo "good"; ←"good"を出力する case 10: ←位置を示すだけのラベルであるので何の動作もしない echo "perfect"; ←"perfect"を出力する break; ← switchブロックを抜ける ここまで実行されてしまいます。 従って、出力は「goodperfect」になります。 もし $num1=10 であれば、初めから 「case 10:」の所に飛び、"perfect"のみが出力されます。 このサンプルプログラムは、そのような想定外の動作をしてしまわないよう、必ず各case項目ごとに break; を忘れないようにしましょう、と言う物であるわけです。 ---- まあ、プログラマが本当にその仕様(ラベル『以降』を実行する)を生かして使うパターンが無くもありません。 例えば、 switch($num) { case 5: case 8: case 10: echo "good"; break; default: echo "bad"; } こう書いたとき、$numが 5 または 8 または 10 の時に "good" が出力されます。それ以外の値では "bad" が出力されます。 こちらは理解できますでしょうか。 一般的な switch~case の使い方だと、case XXX: と次の case YYY:の間が実行するブロックであるように見えますが、そうでは無い、と言うことを言いたかったのでしょうね。

okwaveokw
質問者

お礼

ありがとうございます > だとすると > case5と10を入れ替えたらgoodだけしか表示されないということですよね? この画像についてです

関連するQ&A

  • phpのこの画像の解釈についてあっていますか?

    phpのこの画像の解釈についてあっていますか? もしも、echo $str;が波括弧?の内側にある場合 if文の条件がfalseのためそれ以降のプログラムが実行されず停止 何も出力されず終わる 今回の場合、echo $str;が波括弧?の外側にあるため if文がfalseのため中括弧の終わり } までの処理は実行されず 単独でecho $str;を実行しようとしたため 変数strが定義されていないのでエラーが出力された

    • ベストアンサー
    • PHP
  • PHPから別のHTML(PHP)へリンクさせたい

    次のような処理を考えています。 FormでSubmitされた内容をA.PHPで処理を行います。 A.PHPでは処理結果によって次の2つのケースを行う。 ケース1:B.PHPを実行する。 ケース2:X.HTMLを実行する。 (A.PHPはケース1又はケース2を実行後終了する。) _____________________________ A.PHPでのB.PHP又はX.HTMLへ処理を引き継ぐ記述は どのような構文になるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • php次の画像の解釈について $num1 に5を

    php次の画像の解釈について $num1 に5を代入する $num1はすでに5になっていて、 条件の中で5===5の条件式がブール型によって trueだから次の処理のに進む $str に "ok"を代入する その$strに代入された中身をechoによって出力する それでOKが出力された この認識であっていますか?

    • ベストアンサー
    • PHP
  • php次の画像の解釈について $num1 に5を

    php次の画像の解釈について $num1 に5を代入する $num1はすでに5になっていて、 条件の中で5===5の条件式がブール型によって trueだから次の処理のに進む $str に "ok"を代入する その$strに代入された中身をechoによって出力する それでOKが出力された この認識であっていますか?

    • ベストアンサー
    • PHP
  • PHPのプログラムが同時に呼び出された場合について

    PHPで同時に同じプログラムが呼び出された時、 WEBサーバでは、同時にプログラムが実行されるのでしょうか? それとも、先に呼び出された処理が終るのを待ってから、 後の処理が実行されるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpで画像処理

    phpで画像処理 いつもお世話になっております。 phpで画像処理を行いたいのですが どのような方法があるかご存知の方いませんでしょうか。 内容としては ある画像ファイルの予め決めた場所に 文字を出力しブラウザに表示するという仕様です。(phpファイルにアクセスした際)

    • ベストアンサー
    • PHP
  • phpプログラムにてすぐecho出力が出ない。

    phpにて、ログ解析を解析し、解析結果をCSVに加工して出力するものを 作成しました。 ログの解析には、解析したい単語で正規表現を使用し、 抽出しています。 正規表現は一行につき、多い場合で5つ実行されます。 echoでところどころに変数を出力するようにしています。 phpの<?phpのすぐ下にも startと出力するようにechoを入れています。 ログのボリュームにもよるのですが、 サイズが大きいログの場合、 解析プログラムを実行しても、最初のうちは、ふんともすんとも しないのです。 5000行のログでは、1時間たっても、実行されず、echoの標準出力が発行されず、 100行程度の場合、数秒でechoの標準出力が出力されます。 すこし、経つと、思い出したかのように 標準出力を吐き出します。 phpのプログラムにおいて、 実行する場合に、どのようなソースチェックが行われているのでしょうか?? すこし、わかりづらい質問ですが、 詳しい方、宜しくお願いいたします。

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

    最初にbreakが登場するまでブロック内の処理を実行するということを理解しました。 特定のcaseでのみbreakさせるような場合に、switch構文を使ってみたいです。 サンプルプログラムを作ってみて、構文の理解を深めているのですが 「特定のcaseでのみbreakさせる」例が思いつきません。 実際どのような場合にこの構文を使いたくなりますでしょうか。 (caseのたびに、必ずbreakさせるのであれば、if構文を使いたくなる) 想定しているイメージは ある条件がととのった場合は下記の処理を実行する。  処理(1)→処理(2)→処理(3)→処理(4) 別の条件がととのった場合は下記の処理を実行する。  処理(2)→処理(3)→処理(4) ※OKWAVEより補足:「Webシステム開発」についての質問です。

  • PHPでexeファイル実行

    C言語でMPG形式の画像ファイルを読み込み、画像処理をしてテキスト形式で画像データを出力するプログラムを作成したのですが、 これをPHPプログラム内で動作させ、テキストデータ(できればバイナリのほうがいい)を読み取りたいと思います。 これはexeファイルをexecやsystem関数で実行することで解決できるのでしょうか? また、C言語の画像処理プログラムが画像を読み込んでからテキストデータを作成するまで1分ほどのタイムラグがあります。 どうすればPHP内の処理でexeファイル実行→exeがデータベースから画像を読み込む→ 1分処理待ち→テキスト作成→作成されたテキストデータをPHPで読み込み とできるのでしょうか? ちなみに、exeファイルとphpで作成した画像データベースはサーバー機に置くつもりです。 テキストデータを介さなくても、C言語プログラムからphpに直接データを渡す方法があればそちらのほうが望ましいです。 連続投稿で申し訳ないのですが、急を要するのでぜひともご解答お願いします。

    • ベストアンサー
    • PHP
  • phpでこの画像について なぜ5 secon

    phpでこの画像について なぜ5 seconds of summerが出力されるんでしょうか? caseとswtchの引数?が一致していないですよね?

    • ベストアンサー
    • PHP