echoで$_POST $_SESSIONのキーにシングルクォート、ダブルクォートを使うのはダメ?


phpのechoを使って、$_POST[""]、$_SESSION[""]の中身を出力したいのですが
$_POST,$_SESSIONのキーに、ダブルクォート、シングルクォートを付けるとエラーが出てしまい画面に表示することが出来ません。

具体的には、以下のものです。
echo "$_POST['id']";

キーのシングル・ダブルクォートを外すと表示できるのですが、何故echoを使って$_POST,$_SESSIONのキーにシングル・ダブルクォートを付けて出力しようとするととエラーになってしまうのでしょうか?

初歩的な質問で恐縮ですが、お教えいただけると助かります。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/10/29 16:42:57
  • 終了:2013/10/29 18:50:41

ベストアンサー

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492013/10/29 17:14:38

phpがプログラムを理解しようとする時点(パース時点)では、
まだ、変数の準備が済んでいないためパースエラーとなります。

{ と }で囲めばパースエラーは回避できます。

<?php
echo "{$_POST['id']}";

余談ですが、個人的には"で囲まないことを勧めます。
一見すると面倒そうに見えると思いますが、
デバッグやメンテナンスを繰り返していくと、
楽さがわかってくるはずです。

<?php
echo 'IDは' . $_POST['id'] . 'です。';
id:osamuchan05

ご丁寧に教えてくださりありがとうございます。
今後とても参考になる、文字列の作成方法まで教えてくださり
大変助かりました。

文字列の作成はエラーを起こしやすかったので
参考にさせて頂きます。
ありがとうございました。

2013/10/29 18:54:42

その他の回答(1件)

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492013/10/29 17:14:38ここでベストアンサー

phpがプログラムを理解しようとする時点(パース時点)では、
まだ、変数の準備が済んでいないためパースエラーとなります。

{ と }で囲めばパースエラーは回避できます。

<?php
echo "{$_POST['id']}";

余談ですが、個人的には"で囲まないことを勧めます。
一見すると面倒そうに見えると思いますが、
デバッグやメンテナンスを繰り返していくと、
楽さがわかってくるはずです。

<?php
echo 'IDは' . $_POST['id'] . 'です。';
id:osamuchan05

ご丁寧に教えてくださりありがとうございます。
今後とても参考になる、文字列の作成方法まで教えてくださり
大変助かりました。

文字列の作成はエラーを起こしやすかったので
参考にさせて頂きます。
ありがとうございました。

2013/10/29 18:54:42
id:JULY No.2

JULY回答回数966ベストアンサー獲得回数2472013/10/29 17:18:59

変数の部分を {} で括ると OK になります。

echo "{$_POST['id']}";

参考:
PHP: 文字列 - Manual

id:osamuchan05

ご丁寧に教えてくださりありがとうございます。

2013/10/29 18:52:01

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません