PHP 速習チュートリアル

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'; // 結果: こんにちは $x

3. シングルクォートとダブルクォートの違い(比較表)

項目シングルクォートダブルクォート
変数展開なし - $x などの変数はリテラルとしてそのまま出力されますあり - 変数はその値に置換されます
エスケープシーケンス\'\\ のみをサポート\n, \t, \r, \$, \" など多数をサポート
パフォーマンス僅かに速い(PHPが内容をパースする必要がないため)僅かに遅い(PHPが変数やエスケープシーケンスをスキャンするため)
可読性単純な定数文字列の場合はクリーンに見えます変数が多い文字列では、結合演算子(.)を使わずに済むため読みやすくなります

3.1 挙動の違いを比較するコード例

// ダブルクォートを使用した場合
$x = "John";
echo "こんにちは $x\n";
echo "\tお元気ですか?\n";

// シングルクォートを使用した場合
$x = 'John';
echo 'こんにちは $x\n';
echo '\tお元気ですか?\n';