• 締切済み

【PHP】関数で処理が止まってる??

お世話になります。 PHPでの質問ですが、PHPに限ったものではないように思いますので、プログラム全般に対しての質問と思って下さって結構です。 ※PHP特有のという意見があれば、それも大歓迎です。 下記のようなコードを組んでみました。 <?php echo "func1の結果["; echo func1(); echo "]"; function func1(){ (内容は割愛) return TRUE; } ?> このコードをアップしてアクセスしてみると   出力結果  func1の結果[ でした。 ブラウザのステータスに「ページが表示されました」とあるので、処理中で出力待ちということはないと思います。 > echo func1(); > echo "]"; の箇所の出力はどうなっていると考えればいいのでしょうか? 「関数の内容次第で・・・」とお答えになる方、どういう内容だとこのような結果になるのかというところでお答えください。 私のプログラムによる根本的な考え方は、プログラムは上から下に順番になので、 上記内容の箇所にどんなコードがあったとしても、func1関数はTRUEを返すので、結果としては「func1の結果[1]」となるはずでした。 でも実際の出力結果をみると処理が途中で(おそらくfunc1()内で)止まっているともいます。 timeoutではないため無限ループに嵌ってっていうのもないと思います。 これはどういうことでしょう???

みんなの回答

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

・exitで終了している。 ・エラーで終了しているがエラーメッセージの出力が制御されている。 ・HTMLタグが出力されているせいで出力がないように見える。=>ソース確認 ・出力バッファリングを制御している。

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

func1の処理途中でプログラム実行が強制終了されているんじゃないでしょうか。 エラーチェックなどで、手を抜いた場合には、メッセージを何も出さずに exit や die する場合を見かけますが、 exit() もしくは die() を呼び出すと、そこでスクリプトの実行は終了し、続きはまったく実行されまん。出力も途中で止まってしまいます。

関連するQ&A