Posted at

PHPのシングルクォート('')とダブルクォート("")について


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

ロガーでラップしたメソッドしか使用していなかったせいかこんな仕様になっているとは知らなかった。

再度型の説明ちゃん読もう。。完全に忘れておった。。