重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

ヒアドキュメント内で変数を入れるとそれ以降の文字が出てきません
半角スペースで変数の後を1つあけてやるとうまく出ますが、表示にも半角スペースが空くので見栄えが良くないので修正したいのですが、どうしたらいいでしょうか。
\を変数の後に入れてみましたが、これでも変数の後は表示されたのですが、\まで表示されてしまいます。

例:
$foo = "変数";
print<<<DOC_END
文字$fooあと
DOC_END;
これだと「あと」が表示されない

$foo = "変数";
print<<<DOC_END
文字$foo\あと
DOC_END;
これだと「文字変数\あと」となる
\の代わりに半角スペースを入れると変数とあとの間に半角スペースも表示される

A 回答 (2件)

公式のドキュメントから記述が見つからなかったけれど


当方のPHP 6(独自ビルド)では
<?php
$foo = "変数";
print<<<DOC_END
文字${foo}あと
DOC_END;
?>



文字変数あと

と表示されました。
#明確な仕様がないのが…
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
当方PHP5ですが、教えて頂いた${foo}で書くやり方でうまくいきました
{}をここで使えることを知りませんでした。
ありがとうございました。

お礼日時:2009/11/24 17:39

変数$fooが後ろの「あと」とくっついて別の変数(「$fooあと」)とみなされてるのではないでしょうか?


試しに↓のようにしたら

$foo = "変数";
$fooあと = "テスト";
print<<<DOC_END
文字$fooあと 行末<br>
次の行$foo $fooあと
DOC_END;

表示結果は↓になりました(文字コードUTF-8)

文字テスト 行末
次の行変数 テスト


ヒアドキュメントに限らず文字列の処理では、変数の前後が半角スペースなど変数が確実に識別できる場合以外は#1さんのように{}カッコで括られるのが安全です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
持っているどのPHPの本もサンプルなどは全て{}でくくってないので{}でくくれることを知りませんでした

お礼日時:2009/11/24 17:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!