PHPでの『''』と『""』の扱い
文字を表示するには、『'』と『'』あるいは、『"』と『"』で囲んで表示したい文字を記述しますが、『'』、『"』自身を表示したい場合はどうしたものでしょう?
『'』を表示したい場合は、『"』と『"』で囲み、『"』を表示したい場合は、『'』と『'』で囲めば、表示することができます。
<?php
// 『'』を表示させる
echo "'";
// 『"』を表示させる
echo '"';
エスケープ文字(エスケープシーケンス)
通常では表せない文字や、プログラム中で特別な意味を持つ(『'』や『"』のような)文字をエスケープ文字といいます。エスケープ文字を表示するには、『\』(バックスラッシュ)を表示したい文字の前に付加します。
『\』はWindows環境では¥記号で表します。この文章は、Windowsで見ている人には意味不明と思います。ですので、Windowsなど使うのは止めたほうがよいのです。
<?php
echo '\''; // 『'』を表示させる
echo "\""; // 『"』を表示させる
echo '\\'; // 『\』自体を表示させる
echo "\\"; // 『\』自体を表示させる
『"』のエスケープ文字
『"』には、『'』よりも多くのエスケープ文字があります。
<?php
/*
* 『"』の代表的なエスケープ文字
*/
echo "\n"; // ラインフィールド
echo "\t"; // タブ
echo "\r"; // キャリッジリターン
echo "\$"; // ドル
Hello World!の例で、改行させるには次のように記述すれば良いということになります。
hello.php
<?php
// 『Hello World!』と表示させる
echo "Hello World!\n";
?>
『"』を使用すると、変数も内容での表示が可能です。変数については次ページで説明します。
echo_variable.php
<?php
/**
* 変数を使った例
*/
// Helloを代入
$message = 'Hello';
// ダブルクォート
echo "$message World!\n";
// シングルクォート
echo '$message World!\n';
echo_variable.phpの実行結果
Hello World!
$message World!\n
『''』と『""』のどちらを使うのか?
『''』と『""』のどちらを使えば良いのか迷うところでしょう。基本的には『''』を使うほうが良いです。それは、『""』には、『''』よりも多くのエスケープ文字があるため、実行において余計な処理が必要だからです(実際に体感できるほど大きな差が出る訳ではありませんが)。
では、『''』を使いつつ、改行もさせたい場合はどうしたものでしょうか?それには、文字列を結合する『.』(ピリオド)を使用すると良いです。
文字列結合演算子『.』
『.』は文字列と文字列を連結します。文字列結合演算子といいます。
エスケープ文字のみ、『""』で囲み、その他の文字列は『''』で囲みます。
concat.php
<?php
/**
* 文字列を結合する
*/
// 文字列を結合するには『.』を使います
echo 'HelloWorld!' . "\n";
// 次のようにもできます
echo 'Hello' . 'World!' . "\n";
// 普通は次のようにはしません
echo 'Hel' . 'lo' . 'Wor' . 'l' . 'd' . '!' . "\n";
concat.phpの実行結果
HelloWorld!
HelloWorld!
HelloWorld!
『.』の前後の文字列との間にスペースを入れていますが、これは、コードを読みやすくするためです。適宜このようなスペースを挿入してください。