| 分類 | 種類 | 型 |
|---|---|---|
| スカラー型 | 論理値 | boolean |
| 整数 | integer | |
| 浮動小数点 | float (double) | |
| 文字列 | string | |
| 複合型 | 配列 | array |
| オブジェクト | object | |
| 特別な型 | リソース | resource |
| ヌル | NULL |
多くの場合、型の変換が必要なときは自動でそれが行われるため、明示的にキャストする必要はありません。もし明示的にキャストするならば、settype()または (int) のようなC言語と同様の構文を用いて、
$a = (int)$b;
のようにします。
| コード | 変換後の型 |
|---|---|
| (bool) | 論理値 |
| (boolean) | |
| (int) | 整数 |
| (integer) | |
| (float) | 浮動小数点数 |
| (double) | |
| (real) | |
| (string) | 文字列 |
| (array) | 配列 |
| (object) | オブジェクト |
| (unset) | NULL |
is_array()やis_int()のように、特定の型であるかどうかを判定する関数が用意されています。
| 関数 | 想定する型 |
|---|---|
| is_bool() | boolean |
| is_int() | integer |
| is_integer() | |
| is_long() | |
| is_float() | float |
| is_double() | |
| is_real() | |
| is_string() | string |
| is_array() | array |
| is_object() | object |
| is_resource() | resource |
| is_null() | NULL |
想定する型であったならばTRUEが、さもなくばFALSEが返されます。これらの関数は、たとえば
bool is_int ( mixed $var )PHP: is_int - Manual
のように定義されています。また、内容を判定する下表の関数もあります。
| 分類 | 関数 | 想定する内容 |
|---|---|---|
| 数値 | is_numeric() | 数字または数値形式の文字列 |
| is_infinite() | 無限大 | |
| is_nan() | 数値 | |
| is_scalar() | スカラー型 (boolean、integer、float、string) | |
| クラス | is_a() |
指定クラス、またはそのクラスを継承している
(instanceof演算子で代用可) |
| is_subclass_of() | 指定クラスを継承している |
gettype()関数で変数の型名を取得できます。しかし次の理由により、使用すべきではありません。
gettype
返された文字列は将来のバージョンで変更される可能性があるので、gettype()を使用して型を調べることはしないでください。更に、この関数は文字列比較を行うため、処理が遅くなります。
代わりに is_* 関数を使用してください。
PHP: gettype - Manual