UPDATE:2020年06月26日
PHP の データ型 について
- データ型とは データの性質のこと
- PHPは 型付けの弱い言語
- PHPの8つのデータ型:
- PHPの3のデータ種類:
- データ型判別関数:
整数型(integer)
浮動小数点数型(float)(double)
論理型(boolean)
配列型(array)
オブジェクト型(object)
リソース型(resource)
NULL(null)
(スカラー型)
(スカラー型)
(スカラー型)
(複合型)
(複合型)
(特殊型)
(特殊型)
(整数型)
(浮動小数点数型)
(論理型)
(オブジェクト型)
(NULL)
is_int()
is_float()
is_bool ()
is_object()
is_array()
is_resource()
is_null()
整数型 かどうかを調べる
浮動小数点数型 かどうかを調べる
論理型 かどうかを調べる
オブジェクト型 かどうかを調べる
配列型 かどうかを調べる
リソース型かどうか調べる
NULL型かどうか調べる
データ型とは
- データ型とは データの性質のこと
データ型(データタイプ)はそのデータ(値)の性質を表しています。例えば、そのデータが "Hello" や "こんにちは" などのような文字であればデータ型は文字列型となり、データが 100 や -1、3.14 などの数値であれば、データ型は整数型や浮動小数点数型などとなります。
PHPの型付け
- PHPは 型付けの弱い言語
プログラム言語におていデータの型というのはとても大切なものです。データの性質を理解することで、その値を正しく処理するコードが記述出来ます。PHPは型付けの弱い言語です。データの型を宣言しなくてもPHPがデータ型を自動判別して処理してくれます。型付けの強い言語ではデータを扱うのに型を宣言する必要があります。
$var はPHPが自動でデータ型を判別し型付されます。データ型の宣言は必要ありません。
1 2 3 | $var = "Hello, world!"; //$varは文字列型 $var = 100; //$varは整数型 $var = true; //$varは論理型 |
PHPは規則に応じてデータ型の変換を行います。このような自動的に行われるデータ型の変換のことを型のジャグリングと言います。型のジャグリングについてはこちら。PHPがデータ型を自動判別処理してくれるので、型宣言の手間がなく、便利なのですが、その反面、自分が意図しない型として処理される場合があります。
自分では整数型として扱っているデータが、PHPで文字列型として処理されることなどもあります。そのような場合は自分が意図している結果から誤差が生じてしまう場合があります。
コードを正確に記述するためにもデータの型という概念や種類を覚えておきましょう。
強制型変換(キャスト)
PHPには強制的に型を変換する演算子が用意されています。型変換のことをキャストと言います。これらの演算子をキャスト演算子と言います。PHPのキャスト演算子の詳細はこちら。
演算子 | 名前 | 優先順位 | 結合時の評価 | 例 | 結果 |
---|---|---|---|---|---|
(string) | キャスト | 1 | right | (string) $a | 指定したオペランド $a を文字列型として扱う。 |
(int)(integer) | キャスト | 1 | right | (int) $a | 指定したオペランド $a を整数型として扱う。 |
(float)(real) | キャスト | 1 | right | (float) $a | 指定したオペランド $a を浮動小数点型として扱う。 |
(bool)(boolean) | キャスト | 1 | right | (bool) $a | 指定したオペランド $a を論理型として扱う。 |
(array) | キャスト | 1 | right | (array) $a | 指定したオペランド $a を配列型として扱う。 |
(object) | キャスト | 1 | right | (object) $a | 指定したオペランド $a をオブジェクト型として扱う。 |
(unset) | キャスト | 1 | right | (unset) $a | 指定したオペランド $a をNULL型として扱う。 |
1 2 3 4 5 6 7 | <!-- サンプルコード --> <?php $a = '10'; $b = (int) $a; echo gettype($a)."<br>\n"; echo gettype($b)."<br>\n"; ?> |
結果は
integer
となります。
データ型の種類
- 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 (大文字・小文字を区別しない) |
データ型の判別
- データ型判別関数:
is_int()
is_float()
is_bool ()
is_object()
is_array()
is_resource()
is_null()
整数型 かどうかを調べる
浮動小数点数型 かどうかを調べる
論理型 かどうかを調べる
オブジェクト型 かどうかを調べる
配列型 かどうかを調べる
リソース型かどうか調べる
NULL型かどうか調べる
1 2 3 4 | <?php $sMessage = '我思う、ゆえに我あり'; if(is_string($sMessage) === true) echo '文字列型です。'; ?> |
結果は
となります。
1 2 3 4 | <?php $fPi = 3.14; if(is_float($fPi) === true) echo '浮動小数点数型です。'; ?> |
結果は
となります。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <!-- サンプルコード --> <h3>文字列</h3> <?php $sMessage = '我思う、ゆえに我あり'; if(is_string($sMessage) === true) echo '文字列型です。'; ?> <h3>整数</h3> <?php $iZip = 2223333; if(is_int($iZip) === true) echo '整数型です。'; ?> <h3>浮動小数点数</h3> <?php $fPi = 3.14; if(is_float($fPi) === true) echo '浮動小数点数型です。'; ?> <h3>論理値</h3> <?php $bTrue = TRUE; if(is_bool($bTrue) === true) echo '論理型です。'; ?> <h3>配列</h3> <?php $aPrivateInfo = array('name' => '山田太郎', 'mail' => 'yamada@mail.com', 'old' => 33); if(is_array($aPrivateInfo) === true) echo '配列型です。'; ?> <h3>オブジェクト</h3> <?php class MemberList{ var $sNo1 = '山田太郎'; var $sNo2 = '鈴木太郎'; } $oMemList = new MemberList; if(is_object($oMemList) === true) echo 'オブジェクト型です。'; ?> |
文字列型です。
整数
整数型です。
浮動小数点数
浮動小数点数型です。
論理値
論理型です。
配列
配列型です。
オブジェクト
オブジェクト型です。
タグ(=記事関連ワード)
日付
最終更新日:2020年06月26日