
PHPのデータ型ってなに?
データ型にはどんな種類があるの?
どうやって確認するの?
こういった疑問を解決します。
本記事は少し長めの記事です。
PHPのデータ型の種類、確認方法を解説していきます。
PHPのデータ型とは?

データには種類があります。数値の「123」や文字の「おはよう」などです。
データの型が違うとデータの扱い方が変わってきますので種類を覚えましょう。
PHPには8つの型がありますので解説していきます。
1)整数型(int)
整数型とは?
整数型とは「1」や「15」、「-3」などの数値です。
整数型を表すデータ型はintです。
先頭に「+」「-」をつけることもでき、「+」は正の整数、「-」は負の整数と呼びます。
1 2 3 4 |
<?php $a = 5; var_dump($a); //結果 int(5) |
$aに整数5が入っています。
var_dump()で出力するとデータ型(数値)という形で出力されます。
結果をみるとint(5)と出力されています。
ということは、5はデータ型がintで数値が5ということになります。
2)浮動小数点数型(float、double)
浮動小数点数型とは?
浮動小数点数型とは小数や分数のように整数で表すことのできない実数のことです。
浮動小数点数型を表すデータ型はfloatまたはdoubleで表記されます。
1 2 3 4 |
<?php $a = 2.5; var_dump($a); //結果 float(2.5) |
PHPではfloatと表記されるので、floatが浮動小数点数型と覚えておけば問題ないでしょう。
doubleは倍精度浮動小数点数型というので頭の片隅に入れておきましょう。
3)文字列型(string)
文字列型とは?
文字列型とは、「あいうえお」、「abc」などの文字のことです。
文字列型を表すデータ型はstringです。
PHPにおいて文字列型は非常に重要な役割を果たします。PHPでは、多くのデータが文字列型で表現できます。
この文章も、ネットで検索するときも全てテキストデータ(文字列型)です。
文字列を入力する際は ' '(シングルクォーテーション)か " "(ダブルクォーテーション)で文字列を囲う必要があります。
1 2 3 4 5 6 7 |
<?php $a = "あいうえお"; var_dump($a); //結果 string(15) "あいうえお" $b = 'hello'; var_dump($b); //結果 string(5) "hello" |
文字列をvar_dump()で確認すると$aはstring(15)"あいうえお"と出力されています。
文字列はstring(テキストバイト数) "テキスト"で出力されます。
日本語だと、1文字3バイトなので「あいうえお」は5文字×3バイト=15バイトとなります。
英数字は、1文字1バイトなので「hello」は5文字×1バイト=5バイトとなります。
文字列に関して、以下の記事でも解説していますので、参考にしてください。
キャストについて
文字列や整数、実数を扱っているとキャストが自動で発生していることがよくあります。
キャストとは?
キャストとは型変換をするということです。
1と"1"では整数型と文字列型で違う型ですが、自動で"1"を整数の1と認識することです。
1 2 3 4 5 6 7 |
<?php $i = 123; $x = "100"; $sum = $i + $x; echo $sum; //結果 223 |
比較する際に自動キャストされては困る場合がありますのでその際は厳密な比較(===など)を使用してください。
以下の記事で比較演算子について解説していますので参考にしてください。
4)論理型(bool,boolean)
論理型とは?
論理型とは、true(真)とfalse(偽)の2種類です。
論理型を表すデータ型はboolまたはbooleanです。
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php var_dump(10 == 10); //結果 true var_dump(10 == 20); //結果 false var_dump("10" == 10); //結果 true var_dump(10 === 10); //結果 true var_dump("10" === 10); //結果 false var_dump(10 != 20); //結果 true var_dump( (10 == 10) && (20 == 20) ); //結果 bool(true) var_dump( (10 == 20) || (30 == 20) ); //結果 bool(false) var_dump( (10 == 10) xor (10 == 20) ); //結果 bool(true) var_dump( !(10 == 20) ); //結果 bool(true) |
var_dump()ではbool(論理値)で出力されます。trueかfalseどちらかを返します。
論理演算子(&&,||,xor)について以下の記事で解説しているので分からない方は参考にしてください。
5)配列型(array)
配列型とは?
配列とは、複数の値をまとめて管理することのできる型です。
配列には2種類あります。
1つ目が添字配列、2つ目が連想配列です。PHPではどちらも配列と呼びます。
配列はarray()で記述し添字配列は0から(0,1,2,3・・・)の連続した整数キーで管理され、連想配列は文字列などでキーを定義します。
添字配列
添字配列は0から(0,1,2,3・・・)の連続した整数で管理され、整数を用いて要素にアクセスします。
添字配列の基本的な使い方
- array() で作成するか、[ ](角括弧)で作成する。
- 0からの連続した整数で管理され、整数で要素にアクセスする。
- 要素と要素はカンマ(
,
)で区切る。
以下のソースコードを確認してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php //1つ目の記述方法 $vegetables = ['トマト', 'キャベツ', 'ニンジン']; //2つ目の記述方法 $sports = array( 'サッカー', '野球', 'バスケットボール', ); //3つ目の記述方法 後ろに追加できる $vegetables[] = 'レタス'; $sports[] = 'テニス'; echo $vegetables[0]; //結果 トマト echo $sports[3]; //結果 テニス |
1つ目の記述方法はブラケット[ ] を使用する記述方法です。
$変数 = ['要素1', '要素2', '要素3'];
2つ目の記述方法はarray()を使用する記述方法です。
$変数 = array(
'要素1',
'要素2',
'要素3',
);
3つ目の記述方法は後ろに追加できる記述方法です。
$変数[ ] = '要素4';
$変数[ ] = '要素5';
連想配列
連想配列は、要素に名前(キー名)を指定してそのキーで要素にアクセスする配列を連想配列と呼びます。
連想配列の基本的な使い方
- array() で作成するか、[ ](角括弧)で作成します。
- キー => 値 のペアを1つの要素とします。
- 任意のデータ型のデータを値としてもつことが可能です。
- 要素と要素はカンマ(
,
)で区切ります。 - キーとして用いることができるのは、「整数」と「文字列」
以下のソースコードを確認してください。
1 2 3 4 5 6 7 8 9 |
<?php $sports = array( 'soccer' => 'サッカー', 'baseball' => '野球', 'basketball' => 'バスケットボール', ); echo $sports['baseball']; //結果 野球 |
連想配列は$sports['baseball']でbaseballというキーで野球が出力されます。
$変数 = array(
'キー名' => '要素1',
'キー名' => '要素2',
'キー名' => '要素3';
);
配列をvar_dump()で出力してみましょう。
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 |
<?php $vegetables = array( 'トマト', 'キャベツ', 'ニンジン', ); $sports = array( 'soccer' => 'サッカー', 'baseball' => '野球', 'basketball' => 'バスケットボール', ); var_dump($vegetables); var_dump($sports); //以下のように出力されます array(3) { [0]=> string(9) "トマト" [1]=> string(12) "キャベツ" [2]=> string(12) "ニンジン" } array(3) { ["soccer"]=> string(12) "サッカー" ["baseball"]=> string(6) "野球" ["basketball"]=> string(24) "バスケットボール" } |
配列はボリュームが多いので、別記事で配列に関して載せますのでしばしお待ちください。
6)オブジェクト型(object)
オブジェクトとは?
オブジェクトは変数・関数をまとめてそのまとまりに名前を付けたものを言います。
オブジェクト型とは?
オブジェクト型とはそのオブジェクトを用いて作成されたもの(インスタンス)のデータ型のことです。
以下のソースコードはオブジェクトを作成して、データ型を確認しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php class Greeting { public function hello(){ echo 'こんにちわ' . PHP_EOL; } } $bob = new Greeting; $bob->hello(); //結果 こんにちわ var_dump($bob); //結果 object(Greeting)#1 (0) {} |
オブジェクトに関しては別の記事でまとめているので以下を参考にしてください。
その他のオブジェクト型、オブジェクト指向の記事に関してはしばしお待ちください。
7)リソース型(resource)
リソース型とは?
オープンされたファイルやデータベース接続など、何らかの外部リソースとやりとりを行っている型です。
リソースには様々な種類があるのでPHP公式HP(外部リンク)を参照ください。
get_resource_type()で変数のリソース型を返します。
1 2 3 4 |
<?php $mysql = mysql_connect('server', 'username', 'password'); //MySQLサーバへ接続 var_dump(get_resource_type($mysql)); |
8)NULL(ヌル)型
NULL型とは?
nullは変数が値を持たない(空っぽ)の状態を表す型です。
NULLになる場合
- 定数nullが代入されている場合
- 値が何も代入されていない場合
- unset()されている場合
以下のソースコードを確認してください。
1 2 3 4 |
<?php $a = null; echo var_dump($a); //結果 NULL |
まとめ
データ型は8種類
- 整数型
- 浮動小数点数型
- 文字列型
- 論理型
- 配列型
- オブジェクト型
- リソース型
- NULL型
PHPは基本的に型を気にせずにプログラムを書くことができますが自動的なキャストなどで意図しない型が使われ、思わぬバグが起きるときもありますので、データ型についてはしっかりと覚えておきましょう。