日本PHPユーザ会 掲示板

日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。

日本PHPユーザ会 掲示板 » PHP 5 » ヒアドキュメントでの変数とアンダースコアの扱いについて

ヒアドキュメントでの変数とアンダースコアの扱いについて

ページ: 1

投稿者 投稿
会員
登録者: 5 月 2008
返信数: 2
MYsqlのクエリを実行し、変数に取り込みました。
$number=$row["number"];
$filename2=$row["filename2"];
このとき、$number=10000 $filename2=11aがセットされたとします。
ここで、ヒアドキュメントでurlを書き出そうとしました。
echo<<<eoc
<a href="../../i$number/i$number_$filename2.html " target="_blank">
eoc;
期待する結果は
<a href="../../i10000/i10000_11a.html" target="blank">
です。
ところが、実際には
<a href="../../i10000/i11a.html" target="blank">
となり、「i$number_$filename2.html 」の$numberdが展開されません。
ためしに配列をヒアドキュメントで展開するときのように{}を使って
<a href="../../i$number/i{$number}_$filename2.html " target="_blank">
とすると、期待通りの結果となります。
また、「i$number$filename2.html」とアンダースコアを削除してみると、
「i1000011a.html」と、一応変数は展開されます。
どうもアンダースコアに特別な意味があるようなのですが、マニュアルのヒアドキュメントのところを読んだり、「php ヒアドキュメント 変数 アンダースコア」などのキーワードでグーグル検索して見ましたが答えが出ません。
どなたか、ご教授願います。
« 最終編集者 pepper 日時 2008 年 5 月 5 日(月) 6:44. »
管理者
登録者: 12 2007
返信数: 5
アンダースコアに特別に意味があるわけではなく、アンダースコアも変数名の中に利用できるため
<a href="../../i$number/i$number_$filename2.html " target="_blank">

ですと、$number_ という変数を参照してしまい、結果みつからないため失敗します。
マニュアルにあるように、{}で変数部分を囲めばよく、
<a href="../../i$number/i{$number}_$filename2.html " target="_blank">

とすればよいかと思います。
会員
登録者: 5 月 2008
返信数: 2
ありがとうございます。よくわかりました。再度、ご案内いただいたマニュアルをよく読み返し勉強します :P

ページ: 1

日本PHPユーザ会 掲示板 » PHP 5 » ヒアドキュメントでの変数とアンダースコアの扱いについて

日本PHPユーザ会 掲示板 は UseBB 1 フォーラムソフトウェア を使用しています