PHP

【PHP】シングルクォートとダブルクォートの違い

本記事では、PHPのシングルクォートとダブルクォートの違いについて解説しています。

PHPの学習におすすめ参考書
気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!

本書情報
出版社リックテレコム
著者谷藤 賢一
発売日2017/3/6
ページ数331ページ
レビュー
(Amazon)
(168件)
先輩くん
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
後輩ちゃん
後輩ちゃん
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック

本書情報
出版社オライリージャパン
著者Dustin Boswell / Trevor Foucher
発売日2012/6/23
ページ数260ページ
レビュー
(Amazon)
(620件)
先輩くん
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!

違い① 変数を使用する時

1つ目のシングルクォートとダブルクォートの違いは、変数を使用する時に表れます。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <?php
        $str = 'ラーメン';

        echo "私の好きな食べ物は{$str}です!";
        echo '<br />';
        echo '私の好きな食べ物は{$str}です!'
    ?>
</body>
</html>

上記のコードは変数$strにラーメンの文字を代入したものを、echoでブラウザに表示させる簡単なコードです。

私の好きな食べ物はラーメンです!
私の好きな食べ物は{$str}です!

ブラウザで表示を確認すると、ダブルクォートで囲んだ方は変数に代入されているラーメンが正しく表示されていますが、シングルクォートで囲んだ方は{$str}のまま表示されています。

このように、ダブルクォートでは変数を正しく展開してくれるがシングルクォートでは変数をそのまま文字列として扱ってしまう違いがあります。

違い② エスケープシーケンスを使用する時

1つ目のシングルクォートとダブルクォートの違いは、エスケープシーケンスを使用する時に表れます。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <?php
        echo "明日は\t晴れるといいな!";
        echo '<br />';
        echo '明日は\t晴れるといいな!'
    ?>
</body>
</html>

上記のコードは文字列の途中に\t(タブ)を、挟んだものをechoでブラウザに表示させる簡単なコードです。

明日は 晴れるといいな!
明日は\t晴れるといいな!

ブラウザで表示を確認すると、変数の時と同様にダブルクォートで囲んだ方は\tがタブに変換され正しく表示されていますが、シングルクォートで囲んだ方は\tのまま表示されています。

このように、ダブルクォートではエスケープシーケンスを認識してくれるがシングルクォートではエスケープシーケンスをそのまま文字列として扱ってしまう違いがあります。

シングルクォートとダブルクォートどちらを使うべき?

ここまでの解説を見ると、シングルクォートよりもダブルクォートの方が遥かに優れているため、シングルクォート使わなくてもいいんじゃね?と思いますが、処理速度はダブルクォートよりもシングルクォートの方が1.2倍程度速いです。

そのため、変数展開などをする時はダブルクォートを使用し文字列だけを出力したい時はシングルクォートを使用するのが好ましいです。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村