• 締切済み

ダブル、シングルクォーテーションでエラーが…

はじめてプログラムに挑戦している者です。 独習PHPという本で、値がダブルクォーテーションで囲まれているか シングルクォーテーションで囲まれているかで、結果が違うという内容なのですが サンプル通りに入力して、ブラウザで表示すると サンプル <?php $title='サーバサイド技術の学び舎 - WINGS'; $data1="「$title」はサーバサイド技術の最新情報をお届けします。<br />"; $data2='「$title」はサーバサイド技術の最新情報をお届けします。<br />'; print($data1); print($data2); ?> ↓次のようなエラーが出てしまいます。 Parse error: parse error, expecting `']'' in C:\Apache Software Foundation\Apache2.2\htdocs\samples\chap2\variable2.php on line 3 どうすれば正しく表示されるようになりますでしょうか? よろしくお願いします。

みんなの回答

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.2

PHPの文字列に関することですね。 http://www.php.net/manual/ja/language.types.string.php 一度、上記URLの引用符と二重引用符の項目を参照してみて下さい。

すると、全ての回答が全文表示されます。
  • hide1978
  • ベストアンサー率42% (32/75)
回答No.1

ダブルクォーテーションで括られた文字列内に$から始まる文字列が存在する場合、その$から始まる文字列は変数として扱われることになります。 しかしながらkotatu0031さんが示しているプログラムの場合、PHPは【$title」はサーバサイド技術の最新情報をお届けします。<br />】を変数名と判断してしまいます。 これを回避する (1) 変数名の後ろに半角スペースを入れる。 (2) 変数名を波括弧で括る。 (3) そもそも変数をダブルクォーテーションやシングルクォーテーション内に記述しない。 といった方法があります。 (1)の場合 $data1="「$title 」はサーバサイド技術の最新情報をお届けします。<br />"; (2)の場合 $data1="「{$title}」はサーバサイド技術の最新情報をお届けします。<br />"; (3)の場合 $data1="「" . $title . "」はサーバサイド技術の最新情報をお届けします。<br />";

すると、全ての回答が全文表示されます。

専門家に質問してみよう