本記事では、PHPのシングルクォートとダブルクォートの違いについて解説しています。
- PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
- PHPによるWebアプリ開発の基礎・基本テクニックを学べる
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
違い① 変数を使用する時
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倍程度速いです。
そのため、変数展開などをする時はダブルクォートを使用し文字列だけを出力したい時はシングルクォートを使用するのが好ましいです。