QA@IT

PHPについて

3815 PV

xamppをインストールしてPHPの学習をしております。
そこで、
PHPについて以下2つの質問があります。

質問1 関数の引数について
<?php
phpinfo();
?>
は、phpの情報を表示するスクリプトですが、関数の()の中に
引数を書くときは、引数を""で囲む場合と囲まない場合はあるのでしょうか?

質問2 エラーについて
ファイル名:client.php

<?php
print "あなたのIP:";
print getenv("REMOT_ADDR");
print ""
print "あなたのホスト名";
print gethostbyaddr(getenv("REMOTE_ADDR"));
?>

上記スクリプトを作成して、http://localhost/client.phpとブラウザ
で実行したところ、
Parse error: syntax error, unexpected T_PRINT in C:\xampp\htdocs\client.php on line 5
というメッセージが表示され、5行目【print "あなたのホスト名";】を何回も見ていますが、
何も間違っていない気がします。何が間違っているのでしょうか?

どなたかご教授下さい。

回答

質問2は既に回答のある通り、セミコロン漏れですね。エラーメッセージに出る行番号は、エラーのある行番号じゃなくて、エラーを発見した行番号です。セミコロンが5行目の行頭にあるかもしれないので、4行目までを見ただけではエラーかどうかわからない。
エラーの原因はそれ以前にあります。今回のように直前とも限りません。ずっと前かもしれない。

質問1は、「引数だから""で囲む・囲まない」という発想が間違い。
"" や '' で囲むのは文字列(文字列リテラル)です。

編集 履歴 (0)

print ""
print "あなたのホスト名";

要するにprint ""の後のセミコロンがない、というオチでなくて?
「五行目」とは、「print ""print "あなたのホスト名";」であり、この行が解析エラーと言われているように見えます。

違ったらすいません。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。