シングルクォーテーションとダブルクォーテーションの違い


PHPに限ったことではなくPerlなどでも同じだと思うのですが、シングルクォーテーションとダブルクォーテーションの違いであげられるのが、『メタ文字』や『変数』を使う場合です。


ダブルクォーテーション内では共に解釈されますが、シングルクォーテーション内では全て文字列として扱われます
この違いを頭にいれておかないと、プログラムが意図していない動きをするので注意が必要です。




例えば、下記のサイトで便利な情報を載せてくれています。

UTF-8で変換できない機種依存文字を置換する – memo.xight.org


かなり多くの機種依存文字をカバーしてくれていてうれしい限り、なのですが、

'\xE2\x84\xA1' => 'TEL',
のようにメタ文字をシングルクォーテーションでくくってしまっているために、『℡』という文字ではなく『\xE2\x84\xA1』という文字列を置換しようとするので、折角のプログラムがまったく機能しません。

シングルクォーテーションをダブルクォーテーションに置換してあげれば正しく動くようになるので、利用される際はダブルクォーテーションにしてから利用するといいと思います。

Tag

コメントを残す