
連想配列を含むヒアドキュメントの書き方を教えてください。
以下のコードならうまく行きました。
-(1)--------------------------
$SS = $_SERVER['PHP_SELF'];
$html_txt = <<<EOT
($SS)
EOT;
echo $html_txt;
------------------------------
これを一時的な変数を使わずに以下のようなコードで実行したいです。
-(2)--------------------------
$html_txt = <<<EOT
($_SERVER['PHP_SELF'])
EOT;
echo $html_txt;
------------------------------
これを実行すると
# Parse error: syntax error, unexpected '"',
# expecting T_STRING or T_VARIABLE or T_NUM_STRING in …
というエラーが出てしまいます。
最悪、(1)でもいいと思っています。しかし(2)のようなケースでもできてもいいのではないかと思うのですが、エスケープを入れたり「$_SERVER["PHP_SELF"]」などとクォーテーションを変更したりしてもうまく行きません。
質問は以下です
・(2)のような記述はPHPでは不可能なのでしょうか?
・もし可能なら(1)の何が悪いのか、どうすればうまく行くのかを教えてください
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
もしくは
<?PHP
$html_txt = <<<EOT
($_SERVER[PHP_SELF])
EOT;
echo $html_txt;
備考: http://qiita.com/mpyw/items/8dd5378cb01c877e1f7b
おお。これでもいいんですね。
最初見たときは、「それじゃダメなんじゃないの?」と思ったのですが、試してみたらうまくいきました。
もしかしたらこれを見て戸惑う人もいるかもしれないので、あまり使用しないほうがいいのかもしれませんけど。
ありがとうございました
No.2
- 回答日時:
PHPはマニュアルがよくできているので、マニュアルを読む習慣を付けるといいです。
http://www.php.net/manual/ja/language.types.stri …
ここに、
// 動作します。クォートしたキーを使う場合は、波括弧構文を使わなければなりません
と書いてあります。
>PHPはマニュアルがよくできているので、
>マニュアルを読む習慣を付けるといいです。
…。はい。まさにおっしゃるとおりです。
しかも私はそのページを見た上で質問をしました。
私が見たのはそのページの以下の4項目で
・引用符
・二重引用符
・ヒアドキュメント構文
・nowdoc 構文
それより下はサンプルコードが無駄に多いなと思いざっとしかみませんでした。
もう少し下も読めばよかったのですね…。
残念でした…。
ありがとうございました
No.1
- 回答日時:
こうじゃない?
<?PHP
$html_txt = <<<EOT
({$_SERVER['PHP_SELF']})
EOT;
echo $html_txt;
この回答への補足
この3パターンはうまくいって
(a) ({$_SERVER['PHP_SELF']})
(b) ({$SS})
(c) ($SS)
これだけうまくいきませんでした。
(d) ($_SERVER['PHP_SELF'])
逆に何で(c)はいいの?
(c)はいいのになぜ(d)はダメなの?
という疑問が発生しました。
「{}」なしは省略形で、クォーテーションの無い単純な変数だけ省略できるという感じですかね。(自分で書いてて、この理由な気がしてきましたが…)
もしよろしければこの点についても教えてください。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP PHPプログラムの間違い 1 2022/10/06 14:33
- PHP php エラー 2 2022/10/23 16:43
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP php ログイン 1 2022/11/01 00:24
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「旭日中綬賞 」とはどんな賞で...
-
PHP file_get_contents 503 ser...
-
xrea+ と 開発環境 とで .htacc...
-
電通のタブーとは
-
htmlでphp(WordPress)を動かす
-
phpの拡張子について
-
SSI される .inc ファイル内に ...
-
PHPのアニュアル17章をみて
-
携帯で携帯サイトを閲覧すると...
-
inet コントロールを用いてHTML...
-
FTPコマンドでディレクトリごと...
-
PHPのif文でその処理を途中で抜...
-
フォントの色を変えるには?
-
X-ServerにSmartyをインストー...
-
自分で書いた.htaccess添削して...
-
filemtimeについて
-
ポータルサイト構築
-
windowsXPでのphpとmySQLの導入...
-
require_once で読み込まれたか?
-
phpのswitch文のcaseで
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
includeでHTMLファイルを呼出し...
-
拡張子htmlでphpが動作するフォ...
-
centos6のlogにscript not foun...
-
PHPのアニュアル17章をみて
-
HPをhtmlからphpにする...
-
phpの階層が変わると上手く読み...
-
PHPで下記のサイトのスクリプト...
-
モバイルサイトのxhtmlでPHPを...
-
php セレクトボックス 分岐 ...
-
inet コントロールを用いてHTML...
-
文字化けで混乱中です...
-
携帯でhtmlが見えない
-
HTMLページにPHPで処理した結果...
-
index.phpにbbs.phpを埋め込みたい
-
超あほな質問で本当にすみません。
-
リライトのはずがリダイレクト...
-
おすすめデフラグツール
-
includeにより他の部分が表示さ...
-
正規表現を使い、URLで条件分岐...
-
連想配列を含むヒアドキュメン...
おすすめ情報