【php】プログラミングの際のシングルクォーテーションとダブルクォーテーションの違い

前回のブログを書くに当たり、
自分の書いたソースを見てみると、
文字列を扱うのに、
ダブルクォーテーション「"」とシングルクォーテーション「'」が両方使われていました。
エスケープの際に、 " と ' どちらをエスケープするか、
程度にしか気をつけていませんでした。

改めて、どう違うのか調べました。

変数や改行コードが入っているかどうかで変わる

参考にしたのは、
ダブルクォーテーション、シングルクォーテーションの違いです。

どうやら、文字列中の変数を値に置き換えるかどうかが違うようです。

ダブルクォーテーション「"」は置き換える
シングルクォーテーション「'」は置き換えない

また、重要なのは、シングルクォーテーションの方が処理が速いということです。



ただ僕は変数と文字列を同じ括りの中に入れて書きません。
ピリオド「.」で分ける形で書いています。

$blog['title'] = $blog['type'] . ' | ' . mb_strimwidth($title, 0, 70, '...');
では全てシングルクォーテーションで良いかというと、
そうもいきませんでした。

echo '<dt>' . date('Y年n月j日',strtotime($data[$i]['date'])) . '</dt>\n'
上記の様に全てシングルクォーテーションで書いてみると、
表示結果はこうなりました。

<dt>2014年7月29日</dt>\n
最後の改行コードが「\n」とそのまま表示されてしまいました。
どうやら改行コード(\nや\rなど)も置き換えられないようです。

最終的には改行コードを含む場合は、ダブルクォーテーションとしました。

echo '<dt>' . date('Y年n月j日',strtotime($data[$i]['date'])) . "</dt>\n"
<dt>2014年7月29日</dt>
勉強になりました。

TOPへ戻る

TOP