前回のブログを書くに当たり、
自分の書いたソースを見てみると、
文字列を扱うのに、
ダブルクォーテーション「"」とシングルクォーテーション「'」が両方使われていました。
エスケープの際に、 " と ' どちらをエスケープするか、
程度にしか気をつけていませんでした。
改めて、どう違うのか調べました。
ダブルクォーテーション、シングルクォーテーションの違いです。
どうやら、文字列中の変数を値に置き換えるかどうかが違うようです。
ダブルクォーテーション「"」は置き換える
シングルクォーテーション「'」は置き換えない
また、重要なのは、シングルクォーテーションの方が処理が速いということです。
ただ僕は変数と文字列を同じ括りの中に入れて書きません。
ピリオド「.」で分ける形で書いています。
そうもいきませんでした。
表示結果はこうなりました。
どうやら改行コード(\nや\rなど)も置き換えられないようです。
最終的には改行コードを含む場合は、ダブルクォーテーションとしました。
自分の書いたソースを見てみると、
文字列を扱うのに、
ダブルクォーテーション「"」とシングルクォーテーション「'」が両方使われていました。
エスケープの際に、 " と ' どちらをエスケープするか、
程度にしか気をつけていませんでした。
改めて、どう違うのか調べました。
変数や改行コードが入っているかどうかで変わる
参考にしたのは、ダブルクォーテーション、シングルクォーテーションの違いです。
どうやら、文字列中の変数を値に置き換えるかどうかが違うようです。
ダブルクォーテーション「"」は置き換える
シングルクォーテーション「'」は置き換えない
また、重要なのは、シングルクォーテーションの方が処理が速いということです。
ただ僕は変数と文字列を同じ括りの中に入れて書きません。
ピリオド「.」で分ける形で書いています。
$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>勉強になりました。