コーテーションについて

今日は、文字列を囲む時に使うコーテーションについてです。
シングルコーテーションとダブルコーテーションがありますが、
皆様はどっちがどっちでとしっかり使い分けているでしょうか。

単に、変数に文字列を代入する場合、文字列を出力する場合には
はっきり言ってどっちでもいいです。ですが、この「文字列」に
コーテーションを含む場合、変数が含まれる場合などは、しっかりと
使い分けないといけません。

例えば、シングルコーテーションで文字列を囲った場合、この文字列内に
シングルコーテーションが含まれていると、エラーとなります。
これは、どこからどこまでが文字列として囲われているかが判断できない
からです。ダブルコーテーションでも同じですね。こんな時は文字列内の
コーテーションを「¥」でエスケープしましょう。

例:
$test = ‘あい¥’うえ¥’お';
print $test;
(「あい’うえ’お」が出力される)

また、文字列内に「変数」が入っていた場合、シングルとダブルでは
挙動が違います。先にダブルから説明すると、ダブルの場合には
変数がしっかり展開されて、中に入っているデータが扱われますが、
シングルの場合、変数は展開されず、$付きの「文字列」として
扱われてしまいます。

例:
$test = “test”;

print “$test”;
(「test」が出力される)

print ‘$test';
(「$test」が出力される)

さぁ、ここで問題です。
下記の場合は、一体どんな文字列が出力されるでしょうか。

問題:
$test = “test”;
print “あいう’$test’えお”;

・・・・
・・・・
・・・・

答え:
「あいう’test’えお 」が出力されます!
$testがシングルコーテーションで囲まれていますが、
しっかり展開されています。これは、この場合のシングルコーテーションは、
囲い文字ではないからでーす。

今日はこんな感じでした。

コメントを残す