PHPの全目次
文字列の目次
エスケープシーケンス
文字列として入力を行えない特殊な文字があります。簡単な例で言えば改行です。Enterキーを押してもテキストが改行されるだけで改行を表す文字としては入力できません。
このような特殊な文字を入力するために「¥」記号+1文字などを使い別の単語として記述することができます。このような特殊な記述の仕方をエスケープシーケンスといいます。
エスケープシーケンスとして用意されているものは次のようなものがあります。
¥n 改行¥r キャリッジリターン¥t タブ¥¥ ¥文字¥$ $文字¥( 左括弧¥) 右括弧¥[ 左括弧¥] 右括弧¥’ シングルクオーテーション¥” ダブルクオーテーション¥nnn 8 進数表記¥xnn 16 進数表記
エスケープシーケンスはダブルクオーテーションで囲まれた文字列の場合にだけ意味を持ちます。例えば、次のように使用します。
print “こんにちは¥n”;print “名前は¥”神崎¥”です”;
2番目の例では、ダブルクオーテーションで囲まれた文字列の中で、文字としての「”」を使用したい場合の例です。エスケープシーケンスを使わずにそのまま記述すると次のようになります。
print “名前は”神崎”です”;
このように記述してしまうとどこからどこまでが文字列なのか識別できません。そのため、ダブルクオーテーションで囲また文字列の中で「”」を記述する場合はエスケープシーケンスを用いて「”」の代わりに「¥”」と記述します。
このように「¥」は特殊な意味を持つため、「¥」という文字そのものを文字列の中で記述するにはエスケープシーケンスを使って「¥¥」と記述します。
なおシングルクオーテーションで囲まれた文字列の中でも次の2つだけはエスケープシーケンスとして扱われます。
¥’ シングルクオーテーション¥¥ ¥文字
シングルクオーテーションで囲まれた文字列の中で、文字として「’」を記述したい場合はエスケープシーケンスを用いて「’」の代わりに「¥’」と記述します。そして1つだけですが「¥」記号はシングルクオーテーションの中でも特別な意味を持つため「¥」という文字そのものを記述するには「¥¥」と記述します。
print ‘出身地は¥’大阪¥’です’;
サンプルコード
▶Example-mojiretsu4-1.php
<!DOCTYPE html><html lang=”ja”><head>
<meta http-equiv=”Content-Type” content=”text/html;charset=UTF-8″ />
<title>PHPテスト</title>
</head><body>
<p>PHPのテストです。</p>
<p><?phpprint “私の名前は¥”山田¥”です<br />”;print ‘私の名前は¥”山田¥”です<br />’;?></p>
</body></html>
上記のファイルをwwwサーバーのドキュメントルート以下に設置しブラウザーからアクセスすると下記のようにエラーが発生します。
1つ目のprint文を削除、または2つ目のprint文のように変更すれば、2枚目のように表示されます。
※1つ目のprint文を消した場合の結果↑
今回の例では、最初の文字列はダブルクオーテーションで囲まれた文字列であるため「¥”」はエスケープシーケンスとして扱われていますが、2つ目の文字列はシングルクオーテーションで囲まれた文字列であるため「¥”」はエスケープシーケンスとして扱われず、そのまま文字として出力が行われます。