PHPのシングルクォート('')とダブルクォート("")について
before
こんなコードを書いていたところ、出力されるログが異なることに気づいた。
$hoge = 'hoge\n';
error_log($hoge); //hoge\n
あれ?
$fuga = "fuga\n";
error_log($fuga); //fuga
ダブルクォートで囲んだ場合がデフォだと思っていたけれど、シングルクォートだと改行されないんだっけ?
ググった
一発で解消された。
stackoverflowの記事が簡潔でよい。
What is the difference between single-quoted and double-quoted strings in PHP? - Stack Overflow
記事内でPHP.netのドキュメントも見つけた
PHP: 文字列 - Manual
注意:ダブルクォート構文やheredoc構文とは異なり、変数と特殊文字のエスケープシーケンスは、 引用符 (シングルクオート) で括られた文字列にある場合には展開されません。
(中略)
文字列が二重引用符 (") で括られた場合、 PHP は、以下のエスケープシーケンスを特殊な文字として解釈します。
after
ロガーでラップしたメソッドしか使用していなかったせいかこんな仕様になっているとは知らなかった。
再度型の説明ちゃん読もう。。完全に忘れておった。。