• ベストアンサー

【PHP】命令は記述順に処理されるのですか?

PHP初心者です。 基本的なことですが、命令は記述順に処理されるのでしょうか? たとえば、 (1)外部から何かをダウンロードする (2)print "123"; とした場合、(1)(2)が記述順に実行されると思います。 ・・・実は今までActionScript(Flash)を勉強していましてこれが逆でした。((2)→(1)の順番)このためやや混乱しています。 PHPの場合は処理はあらゆる場合とも記述順と考えて問題ないでしょうか?? お詳しい方、よろしくお願いいたします。

  • PHP
  • 回答数2
  • ありがとう数2

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

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

基本的に上から下(記述順)に処理されます。 当然、関数等を使用する事で先に読み込んだ関数を後から呼び出す、という事で入れ替わる事があります。 ActionScriptやJavaScriptには時間という概念が入り込み、しかもリアルタイムで処理させようとしているため、どうしても((2)→(1)の順番)になってしまうわけです。外部読み込みの命令があったとしても時間は止めないため、読み込むのに時間がかかるかもしれないので先にどんどん次の命令を進める、というような感じです。JavaScriptの場合はブラウザによっても挙動が違うため、かなり悩まされる事がありました。 PHPの外部読み込みは、部分的に外部読み込みファイルとしたもので、ActionScriptやJavaScriptの外部読み込みはそこで止まらずコールバック関数を呼び出す、というような感覚でとらえていれば良いと思います。 参考まで。

takosuke88
質問者

お礼

なるほど! やはり記述順でいいのですか。 ActionScript習い始めは順番に処理されずかなり悩みましたがPHPはだいじょぶそうですね。 ありがとうございました。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2126/6286)
回答No.1

必ずしもそうとは言えません。 例えば、ある関数の本体部分(B)を先にコーディングし、 その関数を呼び出す側(A)を後ろにコーディングする、という スタイルをとることができます。 この場合、後ろに書いてある、呼び出す側(A)を先に実行し、 前に書いてある関数(B)を後から実行することになります。 なお、投稿にあった、ダウンロードとprintの例では、 間違いなく「ダウンロード」→「print」の順に実行します。

takosuke88
質問者

お礼

なるほど。 関数(の定義)についてはどこに書いても呼び出してくれるのは知っています。 ありがとうございました。

関連するQ&A

  • PHPとhtmlの関係

    PHPの学習を始めました。 Webページを作る場合に,PHPの中にhtmlを記述するときと、htmlの中にPHPを記述するときがあるようですが、PHPの中にhtml文をPRINT命令で記述するケースではサーバー主導で命令が実行されるので記述した文のとおりの実行順で実行されることがイメージできますが、逆にhtmlの中でPHPを記述したときのクライアントとサーバーの命令のやり取りの順番がイメージできません。 どなたか,私のような初心者にわかりやすく教えていただけないでしょうか?

    • 締切済み
    • PHP
  • あるphpから他のPHPプログラムに飛び実行する命令

    header("Location: ○○○.php"); という記述だけでは、実行できないのでしょうか? この行の上部までは完璧に実行されますが、この命令だけは飛んでいってくれません。他のしくみがいりますか?

    • 締切済み
    • PHP
  • phpによる遠まわしな処理をあえてしたいのですが

    全部、main.phpで解決すればいいことなのですが、 こんなことが可能かどうか質問させてください。 ページmain.phpにアクセスしたときに、 bg.phpが実行されて、 そのbg.phpからの命令でmain.phpの背景色が変更される、 (main.phpはユーザーが目にするページで、bg.phpは処理だけを行うページです) こんなことをしようとすると、すでに最初に main.phpが読まれてしまっているので、あとから、 bg.phpがbodyのbgcolorを変更しようとパラメータを送ってきたところで、 main.phpは既に読まれているので、再読み込みとかしないと駄目ですよね。 どうやれば外部php(bg.php)経由で、 最初に既に読み込まれているmain.phpの背景のカラーを変えることができるのでしょうか? 無駄な遠回りな処理だとはわかっていますが、考え方を教えてください。

    • ベストアンサー
    • PHP
  • javascriptのPHP化について

    宜しくお願い致します。 javascriptの外部ファイルをPHP化して、サーバサイドで動的に生成した内容を吐き出し、それをHTML側でjavascriptの外部ファイルとして受け取って処理しております。 この場合のブラウザがアクセスした際に処理される順番は・・・ (1)HTMLの読み込み開始 (2)header内のjavascript外部ファイルの読み込みと実行 (3)HTMLファイルのbody以下を読み込み (4)結果をブラウザに返して表示 という流れになるはずです。 この場合、(2)のjavascript外部ファイルの方がbodyより先に実行されるはずです。 しかし、javascript外部ファイル内のPHPでセッションデータを扱っている場合、(3)のbody内でPHPでセッションを定義した内容が、なぜか(2)のjavascript外部ファイルで反映されて実行されるのです。 私のイメージでは・・・ (1)HTMLの読み込み開始 (2)header内のjavascript外部ファイルの読み込みと実行  ※この時セッションは反映しない (3)HTMLファイルのbody以下を読み込み  ※この時にセッションを入れても(2)が既に実行さられているので反映しない (4)結果をブラウザに返して表示  ※結果、セッションにデータが入っておらず、php側でエラーを吐き出しjavascriptが止まる という様になるかと思ってましたが、なぜか実行されます。 javascriptはHTMLが全部読み込まれてから実行されるのでしょうか?

  • 1つのファイルにデザイン(HTML)と計算処理(PHP)を記述していますが、分けたいと思っています。

    PHP初心者です。 1つのファイルにデザイン(HTML)と計算処理(PHP)を記述していますが、分けたいと思っています。 何か方法がありますでしょうか?よろしくお願いします。 (画面仕様) HTMLファイルにFRAME1とFRAME2という名前の2つのインラインフレームを配置しています。 FRAME1はHTMLファイル、FRAME2はPHPファイルを使用します。 FRAME1にはテキストボックス、FRAME2はボタンが表示されます。 (動作手順) 以下のような動作をします。 (1)FRAME1のテキストボックスの内容を変更、又はFRAME2のボタンを押す。 OnChange()又はOnClick()イベント時にJavaScript処理が実行される。 <JavaScript処理> FRAME2のURLを更新(テキストボックス内容をURLの引数にする) (2)FRAME2は更新されたのでボタンが再表示される。 PHPとJavaSctiptが記述されているので実行される。 <PHP処理> URL引数で渡された値を判定、計算 <JavaScript処理> FRAME1のテキストボックスにPHPで計算した値を表示 FRAME2に使っているファイルにHTMLとPHPとJavaScriptが一緒にかかれています。これを何とかしたいです。

    • ベストアンサー
    • PHP
  • PHPからデータをFlash(swf)に送りたいのですが

    PHPに下記のように記述し、データを ActionScript で作成したフラッシュのtarget.swfファイルに送ろうとしています。 データがtarget.swfファイルに渡らなくて困っています。教えていただけないでしょうか。 PHP側: $data="sample";********渡したいデータです。***** print" <object-----swfファイル 中略 <parameter name=\"movie\" value=\"target.swf\" ?sendData=$data> 中略 "; swfファイル側: test.text=sendData;*****渡したデータを読み出すものです。***** 環境は、連絡サーバのPHP5とActionScript2を使用しています。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • perlの命令実行順がおかしいんです

    お世話になっております。 調べ方が甘いのか、調べ切れなかったのでお願いいたします。 Perl5.8.7でプログラムしているのですが、明らかに命令実行順が おかしくなります。(デバッグ文で確認) 再帰したりしているので、スタックの上書きが起きているのかとも 思いましたが、確認する方法を知りません。 またPerlではガベージコレクタで、ほとんどスタックの上書きなど ないというサイトも見ました。 どんな原因が考えられるのでしょうか? 情報不足の場合は何が不足しているのか仰ってください。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • [AS3]phpやPerl等から送り返された情報のFlashでの取得

    http://www.at-sonic.com/blog/archives/2008/02/as3php.php のような感じのプログラムを作っています。 このPHPのソース中、データをFlashへ送り返す部分で、 echo "comp=" . $comptxt; と、compにcomptxtを代入する形でFlashへ渡しています。PHP等でPrintした場合などは、FlashへHTMLのテキストデータをブラウザでなくFlashへ返しているものと思うのですが、Flashへ送り返す情報は、どの様な形式で出力させないといけないのでしょうか? 当方ActionScript 3.0をCS3で使用しています。

    • ベストアンサー
    • Flash
  • php 処理が長い時の動作

    php5で、外部からファイルをダウンロードするモノを作っています。 htmlでフォームからPOSTでコードを送り、それをもとにダウンロードしています。 フォームからコードを送信すると、サーバー側でのダウンロード処理が終わるまでの時間、フォームの画面のまま読み込み中になってしまいます。 そこで、ダウンロード処理が始まる前に待機するように促すメッセージを出そうと、ダウンロード処理をしているphpの最初にechoでメッセージを出そうと試みたのですが、画面が切り替わるのはすべての処理が終わってからのようで、変わらずでした。 理想は、フォームから送信すると待機ページに切り替わり、ダウンロード中と書かれた部分がダウンロード終了と同時にダウンロードボタンになる、といった動作をさせたいです。 不可能であれば、ダウンロード処理を開始する前に時間がかかることを知らせるメッセージを出すだけでも構いません。 お力を貸していただけると幸いです。長文失礼しました。

    • ベストアンサー
    • PHP
  • (モバイル)外部PHPの出力結果を受け取るには

    環境:FlashLite1.1 ActionScript1.0 (キー操作は前提条件とする) Flaファイルからgetで外部PHPに値を投げる PHPで必要処理を渡してFlashで受け取る という処理をさせようとしています。 PHPに投げる側は //PHPからはsss=1でくる。判断材料 sss = 0; //PHPのアドレスとgetで投げる変数d,p url = "./aaa.php?d=" add d add "&p=" add p; //読みにいく     loadVariablesNum(url,0);      if(sss==1){ //読み取りOK;     }else{ //エラー; } PHPの処理結果をダンプしてみると %sss=1% で返ってきているのは確認できました。 しかし、コメントのif文にかかるとエラーになります。 PHPのprintの問題なのかFlash側の受け取りの問題なのかも把握できていません。 何かこれについてアドバイスいただけるかた、どうぞよろしくお願いします。