「PHPの基礎 - 文字列」の版間の差分
(→文字列の連結) |
|||
81行目: | 81行目: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
print('こんにちは'); | print('こんにちは'); | ||
</syntaxhighlight> | |||
<br><br> | |||
== エスケープシーケンス == | |||
文字列として入力できない特殊な文字(改行文字等)が存在する。<br> | |||
<br> | |||
このような特殊な文字を入力するために、\記号 + 1文字等を使用して、特殊文字等を記述することができる。<br> | |||
このような特殊な記述方法をエスケープシーケンスと呼ぶ。<br> | |||
<br> | |||
エスケープシーケンスとして用意されているものには、以下のようなものがある。<br> | |||
¥n 改行 | |||
¥r キャリッジリターン | |||
¥t タブ | |||
¥¥ ¥文字 | |||
¥$ $文字 | |||
¥( 左括弧 | |||
¥) 右括弧 | |||
¥[ 左括弧 | |||
¥] 右括弧 | |||
¥' シングルクオーテーション | |||
¥" ダブルクオーテーション | |||
¥nnn 8 進数表記 | |||
¥xnn 16 進数表記 | |||
<br> | |||
エスケープシーケンスは、ダブルクオーテーションで囲まれた文字列の場合にのみ意味を持つ。<br> | |||
例えば、以下のように使用する。<br> | |||
<syntaxhighlight lang="php"> | |||
print "こんにちは¥n"; | |||
print "名前は¥"伊藤¥"です"; // ダブルクオーテーションで囲まれた文字列の中で"を出力する場合 | |||
</syntaxhighlight> | |||
<br> | |||
また、ダブルクオーテーションで囲まれた文字列の中で¥文字を出力する場合、<code>¥¥</code>と記述する。<br> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>シングルクオーテーションで囲まれた文字列の中でも、以下の2つだけはエスケープシーケンスとして扱われる。</u><br> | |||
¥' シングルクオーテーション | |||
¥¥ ¥文字 | |||
<br> | |||
<syntaxhighlight lang="php"> | |||
print '出身地は¥'大阪¥'です'; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> |
2021年2月25日 (木) 07:12時点における版
概要
PHPでは複数のデータ型が存在するが、文字の集合を表すために使用されるデータ型が文字列である。
ここでは、文字列の取り扱いを記載する。
文字列リテラル
文字列を記述する場合、文字の集合をシングルクオーテーション'
またはダブルクオーテーション"
で囲む。
なお、で囲む場合と
""
で囲む場合では、データの扱いが異なる。(詳細は、次のセクションに記載する)
'文字列' "文字列"
複数行に渡る文字列を作成するには、ヒアドキュメントを使用することもできる。
ヒアドキュメントは、<<< <ID名>で始まり<ID名>で終わる間に記述する。ID名は、任意の文字列が指定できる。
また、ヒアドキュメントでは、シングルクオーテーション'
、ダブルクオーテーション"
、空白も文字として扱われる。
<<< ID 文字列1 文字列2 文字列3 ID
以下の例では、ID名をDocumentとしている。
<<< Document
こんにちは。<br />
お元気ですか?
Document
文字列の連結
文字列と他の文字列を連結して新しい文字列を作成するには、.
を使用する。
'文字列1'.'文字列2'
以下の例では、2つの文字列を連結して出力している。
print 'こんにちは。'.'お元気ですか?';
$name = '佐藤';
print $name.'さん。こんにちは。';
また、連結した文字列を変数に格納することもできる。
$name = '佐藤'.'さん';
文字列の出力(echo, print)
文字列を出力するには、echo
とprint
が存在する。
echo
の書式は、以下の通りである。
echo "" void echo(string $arg1 [, string $... ])
echo
は引数に指定した文字列を出力する。
複数の文字列を続けて出力する場合、カンマ,
で区切って文字列を指定する。
echo 'こんにちは';
echo '出身地:', '東京都';
厳密にいうと、echo
は関数ではなくPHPの言語構造の1つである。
そのため、引数を括弧で括る必要はなく、関数のように括弧で括って記述することもできる。
ただし、複数の文字列を引数に指定する場合、括弧で括らない方がよい。
echo('こんにちは');
print
の書式は、以下の通りである。
print "" int print(string $arg)
print
は、引数に指定した文字列を出力する。echo
とは異なり、複数の引数を指定できない。
また、戻り値として常に1を返す。
print 'こんにちは';
print
もecho
と同様、関数ではなくPHPの言語構造の1つである。
そのため、引数を括弧で括る必要はなく、関数のように括弧で括って記述することもできる。
print('こんにちは');
エスケープシーケンス
文字列として入力できない特殊な文字(改行文字等)が存在する。
このような特殊な文字を入力するために、\記号 + 1文字等を使用して、特殊文字等を記述することができる。
このような特殊な記述方法をエスケープシーケンスと呼ぶ。
エスケープシーケンスとして用意されているものには、以下のようなものがある。
¥n 改行 ¥r キャリッジリターン ¥t タブ ¥¥ ¥文字 ¥$ $文字 ¥( 左括弧 ¥) 右括弧 ¥[ 左括弧 ¥] 右括弧 ¥' シングルクオーテーション ¥" ダブルクオーテーション ¥nnn 8 進数表記 ¥xnn 16 進数表記
エスケープシーケンスは、ダブルクオーテーションで囲まれた文字列の場合にのみ意味を持つ。
例えば、以下のように使用する。
print "こんにちは¥n";
print "名前は¥"伊藤¥"です"; // ダブルクオーテーションで囲まれた文字列の中で"を出力する場合
また、ダブルクオーテーションで囲まれた文字列の中で¥文字を出力する場合、¥¥
と記述する。
※注意
シングルクオーテーションで囲まれた文字列の中でも、以下の2つだけはエスケープシーケンスとして扱われる。
¥' シングルクオーテーション ¥¥ ¥文字
print '出身地は¥'大阪¥'です';