PHP:シングルクウォートとダブルクウォート

以下のサイトに詳しくまとめられてある。  

http://d.hatena.ne.jp/kasahi/20070815/1187201809  

違い

  • エスケープできるものが違う
  • 変数を展開できるかどうか。ダブルは展開される。シングルはそのまま。

よくわかっていないままだと、急にはまってしまうはめになる。。  

例えば文字列内の改行コードを変換したい場合。  

$data = <<< EOF
hogehoge
hogehoge
…
hoge~~~~~~.
EOF;

// 改行コードを文字列「改行」に変更!!!
// str_replace('\n', '改行', $data); //×この場合たんに\nという文字列を探す
 str_replace("\n","改行", $data);

 

シングルクウォートでエスケープできるのは\と引用符のみ。  

だから改行とかを置換したい場合は””ダブルを使わないといけない。

$data = 'hogehoge';

$single = 'この間についかします。{$data}シングルの場合。';
$double = "この間についかします。{$data}シングルの場合。";
echo $single;
// この間についかします。$dataシングルの場合。
echo $double;
//この間についかします。hogehogeシングルの場合。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください