みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPについて

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

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

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

<?php
print "あなたのIP:";
print getenv("REMOT_ADDR");
print "<BR>"
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 "あなたのホスト名";】を何回も見ていますが、
何も間違っていない気がします。何が間違っているのでしょうか?

どなたかご教授下さい。

投稿日時 - 2014-12-22 22:56:58

QNo.8867289

困ってます

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

質問1について抜けてました。

具体的な例はどんなものでしょうか?
例えば

$a='abc' ;
func($a) ;
 # $aの内容(文字列)がfuncに渡される → func('abc') の意味
func("$a") ;
 # $aの内容('abc')を展開した文字列が渡される → func('abc') の意味

なら、同じ意味になりますが

$a=123 ;
func($a) ;
 # $aの内容(数値)がfuncに渡される → func(123) の意味
func("$a") ;
 # $aの内容(123)を文字列に変換し、それを展開した文字列が渡される → func('123') の意味

 だと、異なる意味になります。

また
func('PHP_VERSION') ;
 では、PHP_VERSION という文字列ですが、
func(PHP_VERSION) ;
 では、 定義済み定数 PHP_VERSION の内容(例えば 5.4.0 とか)になります。
http://php.net/manual/ja/reserved.constants.php


囲む、囲まないは、目的や関数の仕様に合せてください。

投稿日時 - 2014-12-23 09:41:58

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

5行目【print "あなたのホスト名";】でエラーが出るのは4行目に問題があるからなのですが、PHPとしては4行目に問題があるのでは無く続く5行目に問題があると判断したためです。
どちらが問題なのかは機械的に判断するのが難しい場合があるので、エラーメッセージは額面通りに受取るのではなく、少し前の処理から見直すようにしましょう。

投稿日時 - 2014-12-23 07:47:30

ANo.1

ちょっと検索してみたら、ちょうどいいのがありました
http://builder.japan.zdnet.com/off-topic/sp_10-reasons-programming-2008/20373555/4/

> 何も間違っていない気がします。

こういう思い込みが、プログラミングには大敵です。

> 5行目【print "あなたのホスト名";】を何回も見ています

エラーメッセージに書いてある行と、そのエラーの真の原因とは、一致するとは限らない、ということです。

投稿日時 - 2014-12-22 23:32:43

あなたにオススメの質問