• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:連想配列を含むヒアドキュメントの書き方)

連想配列を含むヒアドキュメントの書き方

このQ&Aのポイント
  • 連想配列を含むヒアドキュメントの書き方について教えてください。新たな変数を使用せずにコードを実行したい場合、エラーが発生してしまいます。
  • PHPでは、(2)のようなヒアドキュメント内で直接連想配列を参照することはできません。エスケープや引用符の変更などの対応策もうまくいきません。
  • 一方、(1)のように一時的な変数を使用して連想配列を含むヒアドキュメントを作成する方法は有効です。エラーのリスクを回避しながらコードを実行することができます。

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

  • ベストアンサー
noname#244856
noname#244856
回答No.3

もしくは <?PHP $html_txt = <<<EOT ($_SERVER[PHP_SELF]) EOT; echo $html_txt; 備考: http://qiita.com/mpyw/items/8dd5378cb01c877e1f7b

pringlez
質問者

お礼

おお。これでもいいんですね。 最初見たときは、「それじゃダメなんじゃないの?」と思ったのですが、試してみたらうまくいきました。 もしかしたらこれを見て戸惑う人もいるかもしれないので、あまり使用しないほうがいいのかもしれませんけど。 ありがとうございました

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

PHPはマニュアルがよくできているので、マニュアルを読む習慣を付けるといいです。 http://www.php.net/manual/ja/language.types.string.php#language.types.string.parsing ここに、 // 動作します。クォートしたキーを使う場合は、波括弧構文を使わなければなりません と書いてあります。

pringlez
質問者

お礼

>PHPはマニュアルがよくできているので、 >マニュアルを読む習慣を付けるといいです。 …。はい。まさにおっしゃるとおりです。 しかも私はそのページを見た上で質問をしました。 私が見たのはそのページの以下の4項目で ・引用符 ・二重引用符 ・ヒアドキュメント構文 ・nowdoc 構文 それより下はサンプルコードが無駄に多いなと思いざっとしかみませんでした。 もう少し下も読めばよかったのですね…。 残念でした…。 ありがとうございました

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

こうじゃない? <?PHP $html_txt = <<<EOT ({$_SERVER['PHP_SELF']}) EOT; echo $html_txt;

pringlez
質問者

お礼

は、あれ?なに? 確かにそのとおりです…。それでうまく行きました。 変なところでつまづいていました。 ありがとうございました

pringlez
質問者

補足

この3パターンはうまくいって (a) ({$_SERVER['PHP_SELF']}) (b) ({$SS}) (c) ($SS) これだけうまくいきませんでした。 (d) ($_SERVER['PHP_SELF']) 逆に何で(c)はいいの? (c)はいいのになぜ(d)はダメなの? という疑問が発生しました。 「{}」なしは省略形で、クォーテーションの無い単純な変数だけ省略できるという感じですかね。(自分で書いてて、この理由な気がしてきましたが…) もしよろしければこの点についても教えてください。 よろしくお願いします。

関連するQ&A