echo文でのシングルクォーテーションとダブルクォーテーションの違い
Posted at 2010-4-12 23:00 Categorized as PHP
PHPで次のような文を書く。
<?php
$test1 = ‘センスゼロ’;
$test2 = ‘ウェブデザイン’;
echo ‘${test1}からのウェブデザイン’;
echo ‘<br/>’;
echo “センスゼロからの${test2}”;
?>
と、表示結果は
${test1}からのウェブデザイン
センスゼロからのウェブデザイン
となった。
echo1つめはシングルクォーテーションで文字列をくくっているのですが、
その場合は、すべて「文字」として扱われるようです。
つまり${test1}もそのまま「文字」として扱われるんですね。
echo3つめはダブルクォーテーションで文字列をくくっているのですが、
${test2}を変数として認識して、変換されていました。
ちなみにechoをprintにしても同じ結果になりました。
そして、次のような文章を書きました。
<?php
echo ‘Hello\tWorld!’;
echo ‘<br/>’;
echo “Hello\tWorld”;
?>
と、表示結果は
Hello\tWorld!
Hello World!
となりました。
echo1つめはシングルクォーテーションで文字列をくくっているのですが、
エスケープシーケンスの\tもそのまま「文字」として表示してしまっていますが、
echo3つめはタブとして表示されています。
シングルクォーテーションでくくった場合は「文字列」そのままで表示されて、
ダブルクォーテーションでくくった場合は変数やエスケープシーケンスが変換されて表示されるんですね。
小さいことですが、重要なところですね。躓きやすそうなところです。
