

① PHPのソースコードです。
-----------------------------
<?
print print "こんにちは";
?>
----------------------------
①をブラウザで見ると
---------------------------
こんにちは1
---------------------------
と表示されます。
なぜ ブラウザでは「こんにちは1」表示されるか?の
参考書説明が以下です。
-------------------------------------------------------------------------------
この場合、「こんにちは1」と表示されます。
これは、右の「print"こんにちは"」が「こんにちは」を書き出して、しかも
返した値である「TRUE(1)」を、左の「print」が書き出しているのです。
-------------------------------------------------------------------------------
以上ですが ブラウザがソースを読み込む流れは
「左~右へとブラウザが読む」のであれば!
参考書の
「TRUE(1)」を、左の「print」が書き出している
とありますが「左の「print」」値が「1」であれば
1こんにちは
と表示される というのが プログラムの流れからして
「理にかなっている」と思います。
なんで
こんにちは1
と表示されなければいけないのでしょうか!?
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
ソースを「左から右」へ読むからといって、実行の順序が「左から右」となるとは限りません。
左のprintは、表示する値(=右のprintの返す値「TRUE(1)」)が判明するまで表示できません。
右のprintが「TRUE(1)」を返すのは、"こんにちは"を表示した後です。
従って、"こんにちは"の後に"1"が表示されます。
早(朝)々ご回答くださいまして、ありがとうございました。
なるほどですね
この場合!
全体のプログラムを読みだ後に
ブラウザが判断し
表示の前後が決まる。
No.3
- 回答日時:
他の方も回答されていますが
普通のブラウザにPHPのソースコードを解釈する機能はありません。
PHPのコードを解釈してHTMLに変換しているのはWebサーバで、
ブラウザはWebサーバが出力したHTMLを表示しているだけです。
ブラウザはPHPのソースコードを読み込みません。
ご指摘くださいましてありがとうございます。
どうもすみません!
私が質問した内容ですが
「・・・ブラウザがソースを読み込む流・・・」
ではなくて
サーハ゛がPHP のソースを読み込んでいるでしたね
納得です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルに送信ボタンをつける
-
以下のプログラムで質問します。
-
evalの中でNULLを使用して比較...
-
WEB経由のPHPによるSQLServer接...
-
日付の比較について
-
Dosブロンプトでtabを出力したい
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
【C#】FindWindowExの使い方を...
-
「取得先」という表現について
-
セッション変数にパスワードを...
-
Access2000でプリンタドライバ...
-
ASP(.netではありません)でのUs...
-
VBA コレクションに2次元配列...
-
VB+SQLserverでRecordCount問題
-
Yahoo! JAPAN IDを新規取得でき...
-
開始と終了を指定して、その間...
-
セッション変数の命名規則
-
(Win32)ファイルパスから物理ド...
-
POSTで受け渡したものを保存し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
printの出力結果を変数に代入す...
-
以下のプログラムで質問します。
-
whileループの中でフォーム入力...
-
はじめまして。
-
関数の実行ができません
-
phpスクリプトについて
-
文字列の比較がうまくいきません。
-
PHPで変数についての質問です
-
WEB経由のPHPによるSQLServer接...
-
関数戻り値が連想配列の場合
-
【PHP】条件が一致したとき...
-
「次の10件を表示する」のよ...
-
以下エラーメッセージ解決法は
-
日付の比較について
-
CGIで何%の指示の仕方
-
テーブルに送信ボタンをつける
-
$_SERVER["QUERY_STRING"]の仕...
-
「#表を定義し外枠サイズ2を定...
-
PHPの質問です : -> 等
-
郵便番号と一致するか調べるプ...
おすすめ情報
以下で納得しました。
------------------------------------
「ソースコードは 左~右へと読み込まれる」
print print "こんにちは";
ㅤㅤよしよし、'print'(左)だな、何をprintすればいいんだ?
ㅤㅤ右にあるものを評価してやろう。
ㅤㅤㅤㅤよしよし、'print'(右)だな、何をprintすればいいんだ?
ㅤㅤㅤㅤ右にあるものを評価してやろう。
ㅤㅤㅤㅤㅤㅤよしよし、"こんにちは”だな。
ㅤㅤㅤㅤㅤㅤこんにちはをprintへ返してやろう
ㅤㅤㅤㅤおっ?評価した結果が返ってきた。
ㅤㅤㅤㅤ"こんにちは"だな。出力してやろう。
ㅤㅤㅤㅤよし、うまくいった。True(1)を返してやろう。
ㅤㅤおっ?評価した結果が返ってきた。
ㅤㅤ"True(1)"だな。出力してやろう
ㅤㅤよしよし、うまくいった。True(1)を返してやろう。
No.1回答者: siffon9 さんの ご回答~です。
表示する値(=右のprintの返す値「TRUE(1)」)が判明するまで表示できません。
以上ですが!
プログラムの流れからして!
最初に「左」の print が 「右」 print を見に行った場合 同じ関数なので
左の print は 文字としての判断ができない!
次に右のprint の 右側に "こんにちは" があるので だから
文字列と判断して 最初に 処理されて 「こんにちは」
と表示される これを 判断1 とした場合
次の判断に移行して、左の print は 何も判断する 内容がないので
自分の値である(1)を最後に返すことになり
この場合、最後に1の「こんにちは1」と表示されます。
以上ですが 「MySQLの専門書」の内容では
PHPを詳しく説明なされなかった!