UPDATE:2023年06月09日
PHP の 文字列型 (string) について
- 文字列型は 文字 又は 文字を連結したもの のこと
- 文字列型の種類は スカラー型
- 文字列型として扱うには
' (シングルクォート) あるいは、
" (ダブルクォート) で文字を囲む12'文字列'"文字列" - 文字列型のチェックは is_string() 関数 で行う
文字列型とは
- 文字列型は 文字 又は 文字を連結したもの のこと
- 文字列型の種類は スカラー型
- 文字列型として扱うには
' (シングルクォート) あるいは、
" (ダブルクォート) で文字を囲む12echo '文字列';echo "文字列";
文字列型とは「文字」のこと、または「任意の長さの文字を連結したもの」のことです。32bit環境のPHPにおいて、文字列の最大長は2GB (2147483647 バイト)です。64bit環境 PHP7.0.0 以降では特別な制限はありません。
文字列をあらわすには「'(シングルクォート)」あるいは、「"(ダブルクォート)」で文字を囲みます。囲むことで「文字列リテラル」としてPHPに処理されます。リテラル とは値そものもことです。つまり、文字列そのものとして扱われるということです。リテラルの詳細はこちらを参照下さい。
1 2 3 | <!-- サンプルコード --> echo 'a'; echo 'abcdefghijklmnopqrstuvwxyz0123456789'; |
「'(シングルクォート)」と「"(ダブルクォート)」の違いは、ダブルクォートでは変数展開される点や、扱うエスケープシーケンスが異なるという点です。エスケープシーケンスはエスケープ文字列とも言い、通常の文字列では表せない特殊な文字や機能を表現するための規定された特別な文字列の並び「\n(改行コード)など」のことです。詳細はこちらを参照下さい。
1 2 3 4 5 | <!-- サンプルコード --> <?php echo 'Hello';//シングルクォートで文字列を囲む echo "こんにちは";//ダブルクォートで文字列を囲む ?> |
結果は
こんにちは
となります。
「 " (ダブルクォート) 」は変数展開できる
「 " (ダブルクォート) 」で囲まれた中に変数があると変数箇所が格納されているデータに置き換わります。これを変数展開といいます。「 ' (シングルクォート) 」だと変数は展開されません。
「 " (ダブルクォート) 」で変数を囲むと変数展開され、以下のような結果になります。
1 2 3 4 | <?php $greeting = "こんにちは!"; echo "$greeting"; ?> |
となります。
「 ' (シングルクォート) 」だと、変数の $greeting がそのまま表示されてしまいます。
1 2 3 4 | <?php $greeting = "こんにちは!"; echo '$greeting'; ?> |
となります。
変数展開の詳細に関しては「PHP の 変数」をご参照下さい。
「 " (ダブルクォート) 」で扱えるエスケープシーケンス
エスケープシーケンス (escape sequence) とは、コンピュータシステムにおいて、通常の文字列では表せない特殊な文字や機能を表現する、規定された特別な文字列のことです。
エスケープシーケンス(エスケープ文字列) エスケープ文字(「\ (バックスラッシュ) 」(円記号で表されます))+1文字 | そのシーケンスが表す文字 |
---|---|
\" | ダブルクォート |
\n | 改行 |
\r | 復改 |
\t | タブ |
\\ | バックスラッシュ |
\$ | ドル記号 |
\{ | 左波括弧 |
\} | 右波括弧 |
\[ | 左角括弧 |
\] | 右角括弧 |
\0から\777 | 8進数形式で表したASCII文字 |
\x0から\xFF | 16進数形式で表したASCII文字 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <h3>ダブルクォートで囲んだ文字列で扱うことができるエスケープシーケンス</h3> <?php echo "\""; //ダブルクォート echo "\n"; //改行 echo "\r"; //復改 echo "\t"; //タブ echo "\\"; //バックスラッシュ echo "\$"; //ドルマーク echo "\{"; //左波括弧 echo "\}"; //右波括弧 echo "\["; //左角括弧 echo "\]"; //右角括弧 echo "\777"; //8進数形式で表したASCII文字 echo "\xFF"; //16進数形式で表したASCII文字 ?> |
「 ' (シングルクォート) 」で扱えるエスケープシーケンス
エスケープシーケンス (escape sequence) とは、コンピュータシステムにおいて、通常の文字列では表せない特殊な文字や機能を表現する、規定された特別な文字列のことです。
エスケープシーケンス(エスケープ文字列) エスケープ文字(バックスラッシュ「\」(円記号で表されます))+1文字 | そのシーケンスが表す文字 |
---|---|
\' | シングルクォート |
\\ | バックスラッシュ |
1 2 3 4 5 | <h3>ダブルクォートで囲んだ文字列で扱うことができるエスケープシーケンス</h3> <?php echo '\''; //シングルクォート echo '\\'; //バックスラッシュ ?> |
文字列の詳細はこちらをご確認下さい。
文字列型を調べる
- 文字列型のチェックは is_string() 関数 で行う
データが文字列型であるかどうかし調べるには、is_string()関数を使用します。
1 2 3 4 5 | <!-- サンプルコード --> <?php $sString = 'Hello World!'; if(is_string($sString) === TRUE) echo '文字列型です。'; ?> |
結果は
となります。
bool TRUE か FALSE = is_string(mixed $var);
説明 | 変数のデータ型が文字列型かどうかチェックする | |
---|---|---|
引数 | mixed $var | データ型を調べる変数 |
返り値 | bool | 変数が文字列型の場合:TRUE、変数が文字列型ではない場合:FALSE |
サンプル
1 2 3 4 5 6 7 8 9 | <?php $isStr = 'Hello!!'; echo is_string($isStr) ? "文字列型です。<br>\n" : "文字列型ではありません。<br>\n"; //文字列型です。 $notStr = 512; echo is_string($notStr) ? "文字列型です。<br>\n" : "文字列型ではありません。<br>\n"; //文字列型ではありません。 ?> |
データ型の種類
- PHPの8つのデータ型:
- PHPの3のデータ種類:
データ型の表
型名 | 種類 | 例 | |
---|---|---|---|
文字列型 | string | スカラー型 | 'Hello World!!' "我思う、ゆえに我あり" |
整数型 | integer | スカラー型 | 1、2020、-588、+98 8進数 16進数 |
浮動小数点数型 | float(double) | スカラー型 | 1.4142、-0.18 |
論理型 | boolean | スカラー型 | TRUE | FALSE (true false) (大文字・小文字を区別しない) |
配列型 | array | 複合型 | array('name','address') |
オブジェクト型 | object | 複合型 | $oObj = new ClassName(); |
リソース型 | resource | 特殊型 | resource |
ヌル型 | null | 特殊型 | NULL | null | Null (大文字・小文字を区別しない) |
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <!-- サンプルコード --> <h3>文字列 シングルクォートで文字列を囲む</h3> <?php echo 'Hello'; ?> <h3>文字列 ダブルクォートで文字列を囲む</h3> <?php echo "こんにちは"; ?> <h3>文字列の連結</h3> <?php echo '我思う、ゆえに我あり'.'(われおもう、ゆえにわれあり、仏: Je pense, donc je suis、羅: Cogito ergo sum)'; ?> <h3>文字列型の確認</h3> <?php $sString = '我思う、ゆえに我あり'; if(is_string($sString) === true) echo '文字列型です。'; ?> |
Hello
文字列 ダブルクォートで文字列を囲む
こんにちは
文字列の連結
我思う、ゆえに我あり(われおもう、ゆえにわれあり、仏: Je pense, donc je suis、羅: Cogito ergo sum)
文字列型の確認
文字列型です。
タグ(=記事関連ワード)
日付
最終更新日:2023年06月09日