著者は、 Write for DOnations プログラムの一環として、 Open Sourcing Mental IllnessLtdを選択して寄付を受け取りました。

序章

文字列は、文字、数字、または記号で構成される1つ以上の文字のシーケンスです。 書面によるコミュニケーションはすべて文字列で構成されています。 このように、それらはあらゆるプログラミング言語の基本です。

この記事では、文字列の出力を作成および表示する方法、エスケープシーケンスを使用する方法、文字列を連結する方法、文字列を変数に格納する方法、およびPHPの文字列内で引用符、アポストロフィ、改行を使用する規則について学習します。 。

シングルクォートとダブルクォートの文字列

PHPで文字列を作成するには、文字のシーケンスを一重引用符または二重引用符で囲みます。 PHPは、実際には次の文字列を異なる方法で解釈します。

'This is a string in single quotes.'
"This is a string in double quotes."

出力の前に、二重引用符で囲まれた文字列は、文字列内の変数またはエスケープシーケンスを評価および解析します。 一重引用符で囲まれた文字列は、指定されたとおりに各文字を出力します。 一重引用符で囲まれた文字列の例外は、一重引用符(および必要に応じて円記号)です。

PHPでこの文字列をechoする場合:

'Sammy says: "This string\'s in single quotes." It required a backslash (\) before the apostrophes (\\\'), but do not use (\") with the double quotes.'

次の出力が返されます。

Output
Sammy says: "This string's in single quotes." It required a backslash (\) before the apostrophes (\'), but do not use (\") with the double quotes.

一重引用符で囲まれた文字列にアポストロフィの前に円記号を含めないと、PHPはその時点で文字列を終了し、エラーが発生します。 文字列を作成するために一重引用符を使用しているため、PHPが出力する最終的な文字列の一部として、その中に二重引用符を含めることができます。

\'シーケンスをレンダリングする場合は、 3つのバックスラッシュ(\\\')を使用する必要があります。 最初に\\で円記号自体をレンダリングし、次に\'でアポストロフィをレンダリングします。 シーケンス\"は、指定されたとおりにレンダリングされます。

"Sammy says: \"This string's in double quotes.\" It requires a backslash (\) before the double quotes (\\\"), but you MUST NOT add a backslash before the apostrophe (\')."
Output
Sammy says: "This string's in double quotes." It requires a backslash (\) before the double quotes (\"), but you MUST NOT add a backslash before the apostrophe (\').

一重引用符で囲まれた文字列と同様に、二重引用符で囲まれた文字列の二重引用符の前に円記号が含まれていない場合、PHPはその時点で文字列を終了し、エラーが発生します。 二重引用符で囲まれた文字列は一重引用符で終了しないため、二重引用符で囲まれた文字列に直接アポストロフィを追加します。 二重引用符で囲まれた文字列は、アポストロフィで使用される1つまたは2つの円記号を含む\'を出力します。

\"シーケンスを出力するには、3つのバックスラッシュを使用する必要があります。 最初に\\で円記号自体をレンダリングし、次に\"で二重引用符をレンダリングします。 シーケンス\'は、指定されたとおりにレンダリングされます。

\はエスケープ文字として知られています。 二次文字と組み合わせて、エスケープシーケンスを構成します。 文字列について理解したところで、エスケープシーケンスを確認しましょう。

エスケープシーケンス

エスケープシーケンスは、通常の操作手順を停止し、次の文字を異なる方法で評価するようにプログラムに指示します。

PHPでは、エスケープシーケンスは円記号\で始まります。 エスケープシーケンスは、二重引用符で囲まれた文字列に適用されます。 一重引用符で囲まれた文字列は、一重引用符または円記号のエスケープシーケンスのみを使用します。

二重引用符で囲まれた文字列の一般的なエスケープシーケンスは次のとおりです。

  • 二重引用符の場合は\"
  • \\バックスラッシュの場合
  • \$は、変数を展開する代わりにドル記号をレンダリングします
  • \n改行の場合
  • タブの場合は\t

これらのシーケンスを文字列で使用する方法の例を次に示します。

"\"What type of \$ do sharks use?\"\n\tSand dollars!"
Output
"What type of $ do sharks use?" Sand dollars!

エスケープシーケンスを使用すると、これらの特殊文字を含めながら、必要な文字列を作成できます。

文字列の出力の作成と表示

二重引用符で囲まれた文字列の最も重要な機能は、変数名が展開され、変数の値が得られることです。 変数を使用して文字列を表すことも、文字列を直接使用することもできます。 echo関数を呼び出して、文字列を出力します。

$my_name = "Sammy";
echo 'Name is specified using the variable $my_name.';
echo "\n"; // escape sequence for newline character
echo "Hello, my name is $my_name. It's stored in the variable \$my_name.";

$my_name変数は最初の行に作成されます。 2行目では、echo関数を使用して、文字列を一重引用符で囲んで出力しています。 この一重引用符で囲まれた文字列内で$my_name変数を使用すると、文字が書き込まれたとおりに表示されるため、値の代わりに変数名が表示されます。

4行目では、echo関数を再度使用していますが、今回は二重引用符を使用しています。 今回は変数が展開され、最初の文の値が表示されます。 次の文では、$の前に\があり、変数を展開せずに$文字を表示するように文字列に明示的に指示しています。

Output
Name is specified using the variable $my_name. Hello, my name is Sammy. It's stored in the variable $my_name.

注:文字列の評価が問題にならない場合は、一重引用符または二重引用符のどちらを使用するかを選択できますが、どちらを選択する場合でも、プログラム内で一貫性を保つ必要があります。 一重引用符はわずかに高速になる場合があります。

文字列の出力を作成および表示する方法を理解したら、次に、文字列を操作する方法を見ていきましょう。

文字列の連結

連結は、文字列をエンドツーエンドで結合して、新しい文字列を作成することを意味します。 PHPでは、文字列を連結する主な方法が2つあります。

1つは、二重引用符で囲まれた文字列内に文字列変数を含めることです。 これは、前のステップと次のステップで示されました。

$answer = "Chews wisely.";
echo "What do sharks do when they have a big choice to make? $answer";

このコードを実行すると、文字列とChews wisely.に設定されている$answer変数が結合されます。

Output
What do sharks do when they have a big choice to make? Chews wisely.

文字列を連結する2つ目の方法は、.演算子を使用することです。

文字列"Sammy""Shark"を、echoステートメントによる連結と組み合わせてみましょう。

echo "Sammy" . "Shark";

このコードは、.演算子を使用して、"Sammy"文字列と"Shark"文字列を間にスペースを入れずに結合します。

Output
SammyShark

2つの文字列の間に空白を含める場合は、Sammyという単語の後のように、文字列内に空白を含める必要があります。

echo "Sammy " . "Shark";
Output
Sammy Shark

連結を使用して文字列を整数と結合することはできません。

echo "Sammy" . 27;

これにより、エラーが発生します。

Output
Parse error: syntax error, unexpected '.27' (T_DNUMBER), expecting ';' or ',' in php shell code on line 1

"27"を引用符で囲むと、文字列として評価されます。

PHPは緩く型付けされた言語です。つまり、要求に基づいて、与えられたデータを変換しようとします。 変数を27に設定した場合、文字列と連結して使用すると、PHPは変数を文字列として解析します。

$my_int = 27;
echo "Sammy" . $my_int;
Output
Sammy27

文字列を連結または結合する2つの主な方法について説明しました。 文字列を完全に置き換えたり、追加したりしたい場合があります。 次に、PHPで文字列を上書きまたは更新する方法を見ていきましょう。

文字列の更新

PHPの通常の変数は、 mutable です。これは、変更または上書きできることを意味します。 $my_name変数の値を変更するとどうなるかを見てみましょう。

$my_name = "Sammy";
echo $my_name . "\n";
$my_name = "Shark";
echo $my_name;
Output
Sammy Shark

まず、変数を"Sammy"に設定し、echoを使用して表示しました。 次に、"Shark"に設定され、変数が上書きされたため、echoが2回呼び出されたときに、"Shark"の新しい値が表示されました。

変数を上書きする代わりに、連結代入演算子.=を使用して、文字列の末尾に追加できます。

$my_name = "Sammy";
$my_name .= " Shark";
echo $my_name;

まず、$my_name変数を"Sammy"に設定し、.=演算子を使用してその末尾に" Shark"を追加します。 $my_nameの新しい値はSammy Sharkです。

Output
Sammy Shark

文字列の先頭に追加するには、元の文字列を使用しているときに上書きします。

$my_name = "Shark";
$my_name = "Sammy " . $my_name;
echo $my_name;

今回は、最初に$my_name変数を"Shark"に設定し、次に=演算子を使用して、$my_name変数を新しい文字列[ X154X]、$my_name変数の以前の値と組み合わせて、オーバーライドされる前は"Shark"です。 $my_nameの最終的な値はSammy Sharkです。

Output
Sammy Shark

上書き、追加、および追加により、アプリケーションに必要な変更を加えたり、文字列を作成したりすることができます。

文字列の空白

PHPは空白を気にしないため、引用符内に必要な数のスペースまたは改行を入れることができます。

echo "Sammy
The           (silly)
Shark";
TEXT Output
Sammy The (silly) Shark

HTMLは空白のレンダリングが異なることに注意してください。 新しい行には<br>タグが必要であるため、ソースに新しい行が含まれていても、それらの新しい行はWebページに表示されません。 同様に、コード内にいくつのスペースがあっても、文字間に表示されるスペースは1つだけです。

HTML Output
Sammy The (silly) Shark

空白のクリーンで一貫した使用は、コードを読みやすくするための最良のツールの1つです。 PHPは基本的に空白を無視するため、多くの柔軟性を活用できます。 統合開発環境(IDE)は、コードと空白の使用の一貫性を保つのに役立ちます。

結論

文字列のレンダリング方法を制御できることは、アプリケーションのエンドユーザーと通信するために不可欠です。 特殊文字を含む変数を更新して組み合わせると、繰り返しを最小限に抑えながら明確にコミュニケーションをとることができます。

文字列の操作を続けるときは、次の3つの側面に注意してください。

  1. 文字列内の引用符には特に注意してください。
  2. 連結を使用して文字列を結合します。
  3. 変数を使用して、文字列を再利用可能にします。

PHPの詳細については、PHPトピックページをご覧ください。