• ベストアンサー

PHPの変数展開

いつもお世話になっております。 最近PHPを勉強し始めたのですが、どうしてもわからないことがあります。 PHPの変数に文字列を格納し、それを画面に表示したいです。 ネットを参考にしても、またネットの例文をそのまま実行しても、 PHPの変数に格納された文字列が表示されません。 どうしてなのか、さっぱりわかりません。 どうか教えてください。 <?php $colorname = "red"; echo "frame is $colornamecolor"; ?> このように記述して実行すると、画面には 「frame is 」と表示されます。

  • PHP
  • 回答数3
  • ありがとう数6

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

  • ベストアンサー
noname#131718
noname#131718
回答No.1

frame is red と表示したいのでしょうか? だとしたら echo "frame is $colornamecolor"; ではなく echo "frame is ".$colorname; ですね。この'.'で文字列と変数を連結するイメージです。 また、 echo "frame is ".$colorname." color"; とすれば frame is red color となります^^

empuru
質問者

お礼

ご回答ありがとうございます。 できました! 親切に教えていただき、ありがとうございました。

その他の回答 (2)

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.3

$colorname = "red"; echo "frame is $colornamecolor"; を言葉で解説。 $colorname という箱を用意する red という文字を入れます。 表示しなさい frame is $colornamecolor という箱の中身を表示 ということになります さて問題です、。 $colornameという箱には red という文字が入っていますが $colornamecolorという箱には何か入れましたか? $colornameと$colornamecolorは別な箱です。 例文を最小限で修正するのであれば echo "frame is $colorname color"; とスペースを入れてください。 ただし、これはあまり良い例ではありません。 echo "frame is ".$colorname." color"; と書くのが理想 echo "frame is ".$colorname." color"; 表示しなさい frame is 連結しなさい $colornameの箱の中身 連結しなさい color という感じの意味です。

empuru
質問者

お礼

とても親切にご回答いただき、ありがとうございます! とても勉強になりました。 基本的なことからもう一度勉強が必要だと思いました。 本当にありがとうございました。

noname#223623
noname#223623
回答No.2

参考URLに挙げるページを探してたら同じ例題を発見。  http://www.phpbook.jp/tutorial/string/index5.html ここにちゃんと  echo "frame is ${colorname}color" と書かないとだめだと書いてある。落ち着いて読もう。

参考URL:
http://www.phpbook.jp/tutorial/string/index5.html
empuru
質問者

お礼

ご回答ありがとうございます。  {}を使わなくてもできるのかと思っていたので、 読みすごしていました。 これからは落ち着いて読みたいです。

関連するQ&A

  • php→JavaScript間の変数受け渡し

    phpで文字列を入れた変数をJS側に渡して、アラートで表示させるために、下記のソースを作成しました。ボタンを押したらアラートが出ると想定して作成しました。 ※フレームワークにcakePHPを使用しています。 ------------------------------------------------------------------------ <?php $aaa = 'abc'; echo '<input type="button" onClick="xxx()">'; ?> function xxx() {  var bbb = <?php echo $aaa ?>;  alert(bbb); } ------------------------------------------------------------------------ しかし、上記の記述では正常にアラートが表示されません。 そこでいろいろ試してみた結果、 「$aaa = 'abc';」ではなく、 「$aaa = '111';」や「$aaa = 111;」だと正常にアラートが表示されました。 このことから、数字や数値だとうまくいくことがわかりましたが、今回は文字列の受け渡しを行ないたいと考えています。 何かご存知の方がいらっしゃいましたら、アドバイスを頂けると幸いです。 備考 当たり前なのかもしれませんが、 「var bbb = <?php echo $aaa ?>;」ではなく 「var bbb = 'abc';」とjs側で文字列を直接入力すると、アラートは正常に表示されました。 変数で文字列を渡す方法がわからず、半日ほど時間を使ってしまいました。 本当によろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPから文字列を変数に割り当てたい

    変数aにPHPから文字列や空文字を割り当てたいのですが、 次のようなコードだと http://ideone.com/dHmbVY 「b is not defined」や「Unexpected token」といったエラーが出てしまいます・・・ 次のように var a = <?php echo 3 ?>; 文字列じゃなくて数字ならエラーが出ずに済むのですが、 どのように記述すればPHPから文字列を割り当てるとこができるのでしょうか?

  • PHPの変数値をリンクさせたい

    現在、PHP・MySQL・HTMLにてWebサイトを開発しています。 純粋なPHPで記述されたファイルがあり、その中にURL(例えば、BBSのアドレス)が変数に格納されています。そのURL先にジャンプさせたいのですが、どのように記述すれば良いのでしょうか?現在は「require」にてリンクさせていますが、これではページ自体は表示されるのですが、リンク先のページにあるリンク"新規投稿"や"検索"といった文字列をクリックしても「404 Page not found」となり表示されません。おそらくLocalのキャッシュを見ているのでは無いとか思われます。 PHPの初心者のため基本が出来てないのですが、ご教授頂ければ嬉しいです。

    • ベストアンサー
    • PHP
  • PHPの文字列をJavascriptの変数にする

    PHPの変数に格納された文字列を、直接Javascriptの変数の一部として格納しようと考えています。 例:) <script> var txt = "<?php echo $text; ?>"; </script> しかし、$textにダブルクォーテーションなどの文字が含まれていると、スクリプト全体が破綻します。今のところ、PHPの中で、問題を起こしそうな文字列を変換するように処理しています。 例:) $text = str_replace("\\", "\\\\", $text); $text = str_replace("\"", "\\\"", $text); $text = str_replace("\n", "\\n", $text); これよりもスマートな方法(たとえば用意されている関数を使うなど)がありますでしょうか。

    • ベストアンサー
    • PHP
  • phpの変数について

    phpの変数として<?= ~ ?>は設定できないのでしょうか? 例) $test = "<?= $smple ?>" <html> <body> <p>$test</p> </body> </html> 上の記述だと文字列として扱われてしまうので、以下のように表示されてしまいます。 <html> <body> <p><?= $smple ?></p> </body> </html> 変数を使用して、通常のphp構文のように使用することはできないのでしょうか? 若しくは、同じことを実現するためには別のやり方や関数などを用いなければならないのでしょうか? 基本的なことを質問している気がしますが、どなたかご教授願います。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • 変数を取り出しているのに、なぜdefine関数は使

    変数を取り出しているのに、なぜdefine関数は使わないの? 変数に値を格納して取り出すときは、define関数を使うと覚えたのですが 牡蠣コードでも変数に値を入れて取り出せます。 <?php $number = 12345; echo $number; ?> define関数はどういう時に使うのでしょうか?文字列の場合のみですか?

    • ベストアンサー
    • PHP
  • echoの直後に変数(文字列ではなく)を記述?

    echoの正しい記述方法についてご質問します。 echoの直後に変数(文字列ではなく)を記述する場合の質問です。この場合、echoを使用して「変数です」と出力(「」は、出力しません。)するには、以下の例の内、どの記述が正しい(又は最も良い)のでしょうか? 例1: <?php $var = "変数"; echo $var,'です'; ?> 例2: <?php $var = "変数"; echo ',$var,です'; ?> 例3: <?php $var = "変数"; echo '$var,です'; ?> また、上記よりもっと良い記述方法があれば、お教え下さい。 この質問の内容に関して詳細な情報が記載されているサイト等をご存知でしたら、お教え下さい。 よろしくお願いします。

    • ベストアンサー
    • PHP
  •  %php stringcast.php 100

    <?php // stringcast.php if (!isset($argv[1])) { exit; } $num = $argv[1]; if ($num == 100) { echo "num is 100", PHP_EOL; } else { echo "num is not 100",PHP_EOL; } このプログラムを %php stringcast.php 100のように実行すると、引数の100は PHPには文字列型として渡されます。・・・  以上参考書にあります。  作業の流れが分かりません。  %php stringcast.php 100とは!何のことなのでしょうか!?  以上宜しくお願いします。

    • ベストアンサー
    • PHP
  • phpの変数に01と格納したい。

    PHPの変数に01と代入し、echoで表示させると1になってしまうのですが、01をダブルクオーテーションでくくらないで、01と表示させる方法はありますか?

    • 締切済み
    • PHP
  • bashで出力を変数に格納したい。

    初歩的な質問で申し訳ありません。 bashで、あるプログラムの出力の一部を変数に格納したいのですが、どのようにすればよいのでしょうか? 例えば、 >>./test.exe this is a pen. という実行ファイルがあるときに。 isのみを、変数 a に格納する。と言ったものです。 >>echo ${a} is

専門家に質問してみよう