「PHPの基礎 - 文字列」の版間の差分

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動
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)

文字列を出力するには、echoprintが存在する。

echoの書式は、以下の通りである。

echo ""
void echo(string $arg1 [, string $... ])


echoは引数に指定した文字列を出力する。
複数の文字列を続けて出力する場合、カンマ,で区切って文字列を指定する。

 echo 'こんにちは';
 echo '出身地:', '東京都';


厳密にいうと、echoは関数ではなくPHPの言語構造の1つである。
そのため、引数を括弧で括る必要はなく、関数のように括弧で括って記述することもできる。
ただし、複数の文字列を引数に指定する場合、括弧で括らない方がよい。

 echo('こんにちは');


printの書式は、以下の通りである。

print ""
int print(string $arg)


printは、引数に指定した文字列を出力する。echoとは異なり、複数の引数を指定できない。
また、戻り値として常に1を返す。

 print 'こんにちは';


printechoと同様、関数ではなくPHPの言語構造の1つである。
そのため、引数を括弧で括る必要はなく、関数のように括弧で括って記述することもできる。

 print('こんにちは');



エスケープシーケンス

文字列として入力できない特殊な文字(改行文字等)が存在する。

このような特殊な文字を入力するために、\記号 + 1文字等を使用して、特殊文字等を記述することができる。
このような特殊な記述方法をエスケープシーケンスと呼ぶ。

エスケープシーケンスとして用意されているものには、以下のようなものがある。

¥n    改行
¥r    キャリッジリターン
¥t    タブ
¥¥    ¥文字
¥$    $文字
¥(    左括弧
¥)    右括弧
¥[    左括弧
¥]    右括弧
¥'    シングルクオーテーション
¥"    ダブルクオーテーション
¥nnn  8 進数表記
¥xnn  16 進数表記


エスケープシーケンスは、ダブルクオーテーションで囲まれた文字列の場合にのみ意味を持つ。
例えば、以下のように使用する。

 print "こんにちは¥n";
 print "名前は¥"伊藤¥"です";  // ダブルクオーテーションで囲まれた文字列の中で"を出力する場合


また、ダブルクオーテーションで囲まれた文字列の中で¥文字を出力する場合、¥¥と記述する。

※注意
シングルクオーテーションで囲まれた文字列の中でも、以下の2つだけはエスケープシーケンスとして扱われる。

¥'    シングルクオーテーション
¥¥    ¥文字


 print '出身地は¥'大阪¥'です';