PHPでウェブの世界と繋がろう!
menu
ホーム > PHPの文法 > 1 基本構造 > 1-14 文字列の取り扱い

1-14 文字列の取り扱い

Pocket

- 1 分ノート ! -

  • 文字列は " (ダブルクォート) ' (シングルクォート) で囲む
    '文字列'
    "文字列"
    
  • " (ダブルクォート) は 変数展開される
  • ' (シングルクォート) のエスケープシーケンス
    \' シングルクォート
    \\ バックスラッシュ
  • " (ダブルクォート)のエスケープシーケンス
    \' シングルクォート
    \" ダブルクォート
    \n 改行
    \r 復改
    \t タブ
    \\ バックスラッシュ
    \$ ドル記号
    \{ 左波括弧
    \} 右波括弧
    \[ 左角括弧
    \] 右角括弧
    \0から\777 8進数形式で表したASCII文字
    \x0から\xFF 16進数形式で表したASCII文字

文字列の取り扱い
POINT

  • 文字列を扱う場合、 "(ダブルクォート) '(シングルクォート) で文字列を囲む
    '文字列'
    "文字列"
    

PHPで文字列を扱う場合は「"(ダブルクォート)」「'(シングルクォート)」で文字列を囲みます。そうすることでPHPから文字列として処理されます。文字列とは文字が連なったもので単語や文章になるものです。

最も簡単な例は

<?php
echo 'Hello World!';
?>

です。
結果は

Hello World!

となります。
「Hello World!」という文字列を表示させています。

例えば

<?php
echo "1+1";
echo '2+2';
?>

とした場合、
結果は

1+1
2+2

となります。
式がそのまま表示されます。1+1は「"(ダブルクォート)」、2+2は「'(シングルクォート)」で囲むことで式ではなく文字列として処理されました

それでは次に

<?php
echo 1+1;
echo 2+2;
?>

とした場合、出力すると計算結果である

2
4

となります。
こちらは文字列ではなく式として処理されて式の結果が表示されています

ダブルクォートとシングルクォートの違い
POINT

  • 「"(ダブルクォート)」は変数展開される
  • "(ダブルクォート)」と「'(シングルクォート)」では扱うエスケープ文字列が違う

「'(シングルクォート)」で囲まれた場合も「"(ダブルクォート)」で囲まれた場合も文字列として扱われますが、両者には違いがあります。

「"(ダブルクォート)」は変数展開できる
 ダブルクォート「"」で囲まれた中に変数があると変数箇所が格納されているデータに置き換わります。これを変数展開といいます。シングルクォート「'」だと変数は展開されません。変数展開に関してはこちらをご参照下さい。

エスケープ文字列(エスケープシーケンス)とは
 「"(ダブルクォート)」と「'(シングルクォート)」では扱えるエスケープ文字列が異なります。
エスケープ文字列とは、通常の文字列では表せない特殊な文字や機能を表現するための規定された特別な文字列の並びのことです。エスケープ文字列は、バックスラッシュ「\」(円記号で表されます)に続く1文字で表されます。この文字列をエスケープシーケンスといいます。

 例えば、改行を表すエスケープシーケンスは、「\n」で表現できます。バックスラッシュ「\」+1文字で表現しています。コード中に入力すると改行をしろという指示になります。

POINT
 バックスラッシュ「\」(日本語環境では円記号となる場合もある)には、 いくつかの使用法があります。
-1- ひとつめの使用法は、上記のエスケープシーケンスを作るための使用方法です。バックスラッシュ「\」(円記号で表されます)に続く1文字で特殊な機能を持つエスケープシーケンスを作成します。下記表を確認下さい。
-2- もう一つは、非英数字の前に記述する場合で、続く文字が表す特別な意味を取り去る、エスケープ文字としての使用方法です。 バックスラッシュ「\」に続く文字をそのままの文字として扱えるようにします。このエスケープ文字としての使用法は、 文字クラスの内外部いずれでも可能です。
例えば

<?php
echo 'This is Tom\'s pen.';
?>

「Tom's」のシングルクォート「'」を意味を持たない文字列にするため「'」の前にバックスラッシュ「\」を配置しています。
出力すると[ This is Tom's pen. ]となります。

ダブルクォート「"」で扱えるエスケープシーケンス
エスケープシーケンス(エスケープ文字列)
エスケープ文字(バックスラッシュ「\」(円記号で表されます))+1文字
そのシーケンスが表す文字
\" ダブルクォート
\n 改行
\r 復改
\t タブ
\\ バックスラッシュ
\$ ドル記号
\{ 左波括弧
\} 右波括弧
\[ 左角括弧
\] 右角括弧
\0から\777 8進数形式で表したASCII文字
\x0から\xFF 16進数形式で表したASCII文字

シングルクォート「'」で扱えるエスケープシーケンス
エスケープシーケンス(エスケープ文字列)
エスケープ文字(バックスラッシュ「\」(円記号で表されます))+1文字
そのシーケンスが表す文字
\’ シングルクォート
\\ バックスラッシュ

エスケープシーケンス (escape sequence) とは、コンピュータシステムにおいて、通常の文字列では表せない特殊な文字や機能を、規定された特別な文字列のことです。

サンプルコード

– サンプル Click Here ! –

<h3>シングルクォート</h3>
<?php
echo '1+1';
?>
<br/>
<?php
echo 1+1;
?>

<h3>ダブルクォート</h3>
<?php
echo "2+2";
?>
<br/>
<?php
echo 2+2;
?>

<h3>ソースコードを見てみてください。改行やタブが挿入されています。</h3>
<?php
echo "
<table border=\"1\">\n<tr>\n\t<td>\\</td>\n\t\t<td>\$</td>\n\t\t\t<td>\{</td>\n\t\t\t<td>\}</td>\n\t\t\t<td>\[</td>\n\t\t\t<td>\]</td>\n\t\t<td>\777</td>\n\t<td>\xFF</td>\n</tr>\n</table>
";
?>

<h3>ダブルクォートで囲んだ文字列で扱うことができるエスケープシーケンス</h3>
<?php
echo 'ダブルクォート:';
echo "\"";
echo '<br/>';

echo '改行:';
echo "\n";
echo '<br/>';

echo '復改:';
echo "\r";
echo '<br/>';

echo 'タブ:';
echo "\t";
echo '<br/>';

echo 'バックスラッシュ:';
echo "\\";
echo '<br/>';

echo 'ドルマーク:';
echo "\$";
echo '<br/>';

echo '左波括弧:';
echo "\{";
echo '<br/>';

echo '右波括弧:';
echo "\}";
echo '<br/>';

echo '左角括弧:';
echo "\[";
echo '<br/>';

echo '右角括弧:';
echo "\]";
echo '<br/>';

echo '8進数形式で表したASCII文字:';
echo "\777";
echo '<br/>';

echo '16進数形式で表したASCII文字:';
echo "\xFF";
echo '<br/>';
?>
実行結果

シングルクォート
1+1
2

ダブルクォート
2+2
4

ソースコードを見てみてください。改行やタブが挿入されています。

\ $ \{ \} \[ \]

ダブルクォートで囲んだ文字列で扱うことができるエスケープシーケンス
ダブルクォート:"
改行:
復改:
タブ:
バックスラッシュ:\
ドルマーク:$
左波括弧:\{
右波括弧:\}
左角括弧:\[
右角括弧:\]
8進数形式で表したASCII文字:�
16進数形式で表したASCII文字:�

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

投稿日:2011年10月10日
最終更新日:2014年02月01日

関連記事

配列関数サンプル

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://www.tryphp.net/phpref-moziretsuatsukai/trackback/