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

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つめはタブとして表示されています。

シングルクォーテーションでくくった場合は「文字列」そのままで表示されて、
ダブルクォーテーションでくくった場合は変数やエスケープシーケンスが変換されて表示されるんですね。
小さいことですが、重要なところですね。躓きやすそうなところです。

ランキング参加中!
応援の1クリックをお願いします!

にほんブログ村 デザインブログ Webデザインへ にほんブログ村 IT技術ブログ WordPressへ 人気ブログランキングへ

コメント

コメントをお寄せください

コメントの投稿

トラックバックURL: http://designfromzero.com/php/254.html/trackback