
【PHP】特殊文字とエスケープシーケンス – 文字列で特殊文字を使う方法
文字列では、特殊文字と呼ばれる通常の記述で使えない文字があります。
ここでは特殊文字とその使用方法について解説します。
-
特殊文字
-
エスケープシーケンス
特殊文字とは
特殊文字とは通常の記述では使えない文字のことです。
例えば、ダブルクオートや改行、タブなどで、何故使えないかを次のコードで確認しましょう。
<?php
echo "これ→"はダブルクオートです。";
?>
PHP Parse error: syntax error, unexpected identifier "はダブルクオートです。", expecting "," or ";" in sample.php on line 3
Parse error: syntax error, unexpected identifier "はダブルクオートです。", expecting "," or ";" in sample.php on line 3
ダブルクオートの文字列の内容にダブルクオートがあり、実行結果にエラーが出力されています。
エラーの原因は文字列の内容に特殊文字のダブルクオートがあることです。
それによりコンパイル時に文字列の範囲が、これ→
までなのかこれ→"はダブルクオートです。
までなのかが判定できなくなります。
文字列の内容にダブルクオートのような特殊文字を使用する場合は、エスケープシーケンスと呼ばれる仕組みを使います。
エスケープシーケンス
エスケープシーケンスは特殊文字を回避する仕組みです。
具体的には特殊文字の前にバックスラッシュ(\)を記述します。
※ Windowsの場合は円マーク(¥)をバックスラッシュの代わりに使うことがあります。
上記コードにエスケープシーケンスを適用すると次のようになります。
<?php
echo "これ→\"はダブルクオートです。";
?>
これ→"はダブルクオートです。
文字列の内容のダブルクオートの前にバックスラッシュが付いており、実行結果では『これ→”はダブルクオートです。』と表示されているので、正常に動作していることが分かります。
エスケープシーケンスすることで、『バックスラッシュ+特殊文字』で1文字となり、文字列の内容の文字として扱われます。
そして、バックスラッシュは文字としては認識されないため、出力では表示されません。
特殊文字の種類
ダブルクオート以外にも様々な特殊文字があり、代表的な特殊文字を次の表に示します。
意味 | 記述 |
---|---|
シングルクオート | \' |
ダブルクオート | \" |
改行 | \n |
タブ | \t |
括弧 | \( / \) / \[ / \] |
注意点
エスケープシーケンスは基本的にはダブルクオートの文字列で使用します。
シングルクオートの文字列ではシングルクオートとダブルクオートしかエスケープシーケンスできないので注意しましょう。
演習問題
次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。
- 文字列はダブルクオートを使用
ダブルクオート "
次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。
- 文字列はダブルクオートを使用
ダブルクオート "
シングルクオート '
まとめ
特殊文字は通常の記述では文字列で使えない文字です。
もし、特殊文字を使用したい場合はエスケープシーケンスを使いましょう。