PHP の文字列
1. PHPの文字列(Strings)
ストリング(String / 文字列)は、"Hello world!" のような一連の文字の並びです。 PHPにおいて、文字列はダブルクォート(Double quotes / ")、またはシングルクォート(Single quotes / ')のいずれかで囲みます。
1.1 使用例
echo "こんにちは";
echo 'こんにちは';注意: PHPにおいて、ダブルクォートとシングルクォートには機能的な違いがあります。
2. ダブルクォートか、シングルクォートか?
どちらの引用符も使用可能ですが、それぞれの仕様の違いを理解しておく必要があります。
ダブルクォートで囲まれた文字列は、内部に含まれるバリアブル(Variable / 変数)の値を展開し、\n(改行)、\r、\t(タブ)などの多くの特殊文字をエスケープ(Escape)することによって受け付けます。
2.1 ダブルクォートによる変数展開の例
$x = "John";
echo "こんにちは $x"; // 結果: こんにちは John一方で、シングルクォートで囲まれた文字列は変数を展開せず、記述された通りの文字列を出力します。
2.2 シングルクォートによる出力例
$x = "John";
echo 'こんにちは $x'; // 結果: こんにちは $x3. シングルクォートとダブルクォートの違い(比較表)
| 項目 | シングルクォート | ダブルクォート |
|---|---|---|
| 変数展開 | なし - $x などの変数はリテラルとしてそのまま出力されます | あり - 変数はその値に置換されます |
| エスケープシーケンス | \' と \\ のみをサポート | \n, \t, \r, \$, \" など多数をサポート |
| パフォーマンス | 僅かに速い(PHPが内容をパースする必要がないため) | 僅かに遅い(PHPが変数やエスケープシーケンスをスキャンするため) |
| 可読性 | 単純な定数文字列の場合はクリーンに見えます | 変数が多い文字列では、結合演算子(.)を使わずに済むため読みやすくなります |
3.1 挙動の違いを比較するコード例
// ダブルクォートを使用した場合
$x = "John";
echo "こんにちは $x\n";
echo "\tお元気ですか?\n";
// シングルクォートを使用した場合
$x = 'John';
echo 'こんにちは $x\n';
echo '\tお元気ですか?\n';