PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPの文字列(string)データ型とは?4つの記述方法とエスケープシーケンスを解説

文字列データ型の定義と使い方

PHPにおける文字列(string)データ型は、数値以外の文字の連なりを表すデータ型です。ASCII文字セットに含まれる任意の文字を文字列の一部として扱うことができます。なお、PHPはUNICODEをネイティブにはサポートしていません。

PHPで文字列リテラルを記述する方法は主に4つあります。シングルクォート、ダブルクォート、そしてヒアドキュメント(heredoc)構文とNowdoc構文です。

構文

//変数への文字列値のリテラル代入
$var='Hello World'; //シングルクォート
$var3="Hello World"; //ダブルクォート

シングルクォートで囲んだ文字列の中にシングルクォートそのものを含めたい場合は、直前に「\」を付けてエスケープします。同様に、バックスラッシュを含めたい場合もバックスラッシュを重ねて記述します。それ以外の「\n」などのエスケープシーケンスは特別な意味を持たず、記述したままの形で出力されます。

一方、ダブルクォートで囲んだ文字列では、次のエスケープシーケンスがそれぞれ特別な意味を持って解釈されます。

シーケンス意味
\n改行(ラインフィード)
\rキャリッジリターン
\t水平タブ
\v垂直タブ(PHP 5.2.5以降)
\eエスケープ(PHP 5.4.4以降)
\fフォームフィード(PHP 5.2.5以降)
\\バックスラッシュ
\$ドル記号
\"ダブルクォート

ヒアドキュメント(Heredoc)構文

ヒアドキュメントによる文字列は、「<<<」記号に続けて任意の識別子を指定することで開始します。翌行からは、上記のエスケープシーケンスを含み得る複数行の文字列を自由に記述できます。最終行には、同じ識別子をセミコロン付きで記述します。

//Heredocによる文字列の代入
public $var = <<< XYZ
Hello World
Welcome to Tutorialspoint
XYZ;

Nowdoc構文

Nowdocはヒアドキュメントとよく似ていますが、識別子をシングルクォートで囲む必要がある点が異なります。Nowdoc内のエスケープシーケンスは解釈されず、記述したままの形で出力されます。また、後述の例のように変数展開も行われません。

//Nowdocによる文字列の代入
public $var = <<< 'XYZ'
Hello World
Welcome to Tutorialspoint
XYZ;

PHPバージョンに関する補足

数値リテラルにおける桁区切り記号「_」は、PHP 7.4.0以降で利用可能です。

例1:シングルクォートで囲んだ文字列

次の例では、シングルクォートで囲んだ文字列を使用しています。エスケープシーケンス「\n」は解釈されず、そのまま表示されます。

<?php
$var = 'Hello World.\n Welcome to Tutorialspoint';
echo $var;
?>

出力結果

Hello World.\n Welcome to Tutorialspoint

例2:ダブルクォートで囲んだ文字列

この例ではダブルクォートを使用しています。「\n」が解釈されるため、テキストが2行に分かれて表示されます。

<?php
$var = "Hello World.\n Welcome to Tutorialspoint";
echo $var;
?>

出力結果

Hello World.
Welcome to Tutorialspoint

例3:HeredocとNowdocの基本的な使い方

この例は、文字列の表現にHeredoc構文とNowdoc構文を使用する方法を示しています。

<?php
//Heredoc
$var = <<< STR
Hello World
Welcome to Tutorialspoint
STR;
echo $var . "\n";
//Nowdoc
$var = <<< 'STR'
Hello World
Welcome to Tutorialspoint
STR;
echo $var;
?>

出力結果

Hello World
Welcome to Tutorialspoint
Hello World
Welcome to Tutorialspoint

例4:変数展開の違い

Heredoc文字列内では変数の値が置換(展開)されますが、Nowdoc文字列では置換が行われず、変数名がそのまま出力されます。

<?php
$name = "Mahesh";
$var = <<< STR
Hello $name
Welcome to Tutorialspoint
STR;
echo $var . "\n";
//Nowdoc
$var = <<<'STR'
Hello $name
Welcome to Tutorialspoint
STR;
echo $var;
?>

出力結果

Hello Mahesh
Welcome to Tutorialspoint
Hello $name
Welcome to Tutorialspoint
  1. PHPのucfirst()関数とは?使い方とサンプルコードを解説

    ucfirst() 関数は、文字列の最初の1文字を大文字に変換するために使用されるPHPの組み込み関数です。それ以外の文字は元のまま維持されます。 構文 ucfirst(str) パラメータ str − 先頭の文字を大文字に変換したい対象の文字列を指定します。 戻り値 ucfirst() 関数は、最初の文字が大文字に変換された文字列を返します。元の文字列そのものは変更されない点に注意してください。 使用例 以下は ucfirst() 関数を使った基本的なコード例です。 <?php echo ucfirst(demo); ?> 出力結果 Demo 補足:マルチバ

  2. Pythonの文字列データ型の基本:定義方法・スライス・連結・繰り返しを解説

    Pythonにおける文字列とはPythonの文字列(string)は、引用符で囲まれた連続した文字の集合として表現されるデータ型です。Pythonでは、単一引用符(...)と二重引用符(...)のどちらのペアでも文字列を定義でき、両者に機能上の違いはありません。また、文字列の一部(部分文字列)を取り出すには、スライス演算子([ ] および [:])を使用します。インデックスは文字列の先頭が「0」から始まり、末尾に向かって「-1」という負の値で逆方向にも数えられるのが特徴です。文字列の連結と繰り返し文字列に対して使える主な演算子は以下のとおりです。+ (プラス記号):文字列同士を連結する演算子*