データ型
PHPをはじめ、多くのプログラミング言語には、データの型(タイプ)という概念があります。データ型とは、簡単に言えば、変数の値がどのような状態にあるのか?ということです。
しかし、PHPの場合、違う型のデータでも、自動で変換されて処理されるところがあったりする(これをデータ型に弱い等と言います)ため、あまり意識しなくてもプログラミングできます。しかし、データ型の違いを意識した上でプログラミングを行うことは、正しいプログラムを書くために大切なことです。
ただ、始めのうちは、あまり難しく考えずに、データには型があるということを頭に置いておくだけで十分です。気にするよりも、たくさんコードを書いていたほうが、身に付くものです…
例えば、これまでの説明で、変数には何らかの文字列を代入してきました。
<?php
// 変数に値(文字列)を代入
$word = "Hello World\n";
// 文字列を出力
echo $word;
この例の場合、変数$wordには文字列が代入されています。したがって、この変数$wordの型は、文字列型となります。
もうひとつ、例を挙げてみます。
<?php
// 変数に値(整数値)を代入
$number = 3;
// メッセージを出力
echo 'ラッキーナンバー:' . $number . "\n";
この場合は、変数$numberには整数値が代入されているので、整数型となります(整数として値を代入するには、『'』や『"』で値を囲む必要はありません)。
データ型の種類
PHPには、8個のデータ型があります。それらを簡単に説明します。
- 文字列型(String)
- これまでの例で使用してきた型です。変数に代入するには、『'』や『"』で囲みます。
- 整数型(Integer)
- その名のとおり、整数です。負の数も含みます。変数に代入する場合、『'』や『"』で囲む必要はありません。『'』や『"』で囲んでしまうと、文字列とみなされ、文字列型となります。
- 扱うことのできる数の範囲は、コンピュータのCPUによって変わってきます。PHPでは、整数型で扱うことができる範囲を越える場合、その値は浮動小数点型に自動的に変換されます。
- 浮動小数点型(Float)
- 浮動小数点型は、小数を扱う場合に使用します。整数型と同様、『'』や『"』で囲む必要はありません。
- 論理型(Boolean)
- 真(TRUE)あるいは、偽(FALSE)のどちらかの値だけを持つ型です。『'』や『"』で囲む必要はありません。
以上の文字列型(String)、整数型(Integer)、浮動小数点型(Float)、論理型(Boolean)は、1つの値だけを保持することができます。このような型はスカラー型と呼ばれることもあります。
- 配列型(Array)、オブジェクト型(Object)
- 配列型とオブジェクト型は、複数の値や処理の塊などを保持することができる型です。この2つの型については、後々、じっくりと説明したいと思います。この2つの型は、スカラー型に対し、複合型と呼ばれることがあります。
リソース型(Resource)
PHPでは、データベースやファイルなど、外部のデータを扱うこともできます。そういった、データベースとの接続等の管理にリソース型は使用されます。
ヌル型(Null)
ヌル型は、何の型も定義されていない状態、つまり、変数に何も値が代入されていないことを意味します。
変数の型を調べる
変数に代入されているデータの型を調べる方法はいくつかありますが、扱いやすく、便利なものの中にvar_dump()関数があります。関数については、次ページで詳しく説明しますが、var_dump()関数は、変数の情報を出力する機能を持っています。
以下は、var_dump()関数を使用した簡単な例です。
var_dump_example.php
<?php
/**
* var_dump()関数を使用した例
*/
// 変数に値を代入
$word = '変数には型がある';
// 変数の情報を出力
var_dump($word);
var_dump_example.phpの実行結果
string(24) "変数には型がある"
実行結果を見ると、まず、『string』と表示され、string型(文字列型)であることが分かります。
続いて、()で囲まれた数字が文字数を表しています。日本語を出力しているので、2文字分、あるいは、3文字分の文字数をカウントします。上の出力結果は、3文字分でカウントされています。これは実行環境の文字エンコーディングによって変わってきます。
最後に実際に代入されている値が出力されます。
もうひとつ、例を示します。
var_dump_example2.php
<?php
/**
* var_dump()関数を使用した例
*/
// 変数に値を代入
$string = 'string';
$integer = 100;
$float = 3.141592;
$boolean = TRUE;
$null = NULL;
// 変数の情報を出力
/*
ブラウザで出力結果を確認する場合、
<pre>タグで囲むと良いと思います。
*/
//echo '<pre>';
var_dump($string);
var_dump($integer);
var_dump($float);
var_dump($boolean);
var_dump($null);
//echo '</pre>';
var_dump_example2.phpの実行結果
string(6) "string"
int(100)
float(3.141592)
bool(true)
NULL
int、float、boolean型は、()の中に代入された値が表示されます。null型は、そのまま何もなく出力されます。var_dump()関数は、変数の内容を型などと一緒に出力してくれるので、デバッグ用途にも有効だと思います。