定義と使い方
- PHPバージョン
- 4+
gettype()関数は、引数として渡された値のデータ型を文字列として返します。
この関数を使用すると、変数のデータ型を確認するのに非常に便利です。
基本例
var_dump(gettype(10)); // string(7) "integer"
var_dump(gettype('Hello, world!')); // string(6) "string"
var_dump(gettype([1, 2, 3])); // string(5) "array"
var_dump(gettype(new stdClass())); // string(6) "object"
settype()関数は、引数として渡された変数を指定されたデータ型に設定します。
構文
gettype(mixed $value): string
引数
$value |
データ型を確認するための変数または値 |
|---|
戻り値
変数のデータ型を文字列として返します。返される可能性のあるデータ型の一覧は以下の通りです。
上に列挙されているものは、gettype()関数が返す可能性のある文字列の一覧です。この一覧をもとに、変数のデータ型を確認することができます。
'boolean'
'boolean' 文字列は、true(真) または false(偽) のいずれかの値のみを持つデータタイプが 論理型 (boolean) であることを示します。このタイプは主に条件文や論理演算において、制御フローを管理するために使用されます。
次のような例を通して理解できます。
var_dump(gettype(true)); // string(7) "boolean"
var_dump(gettype(false)); // string(7) "boolean"
データタイプが 論理型 (boolean) であるかチェックする際は、is_bool() 関数を使用することをお勧めします。
is_bool() 関数は 論理型 (boolean) タイプにのみ適用されるため、gettype() 関数よりも 論理型 (boolean) タイプをチェックするにおいて、より明示的で推奨されます。
補足説明
is_bool() 関数は、与えられた値が 論理型 (boolean) であるかを確認します。
引数として渡された値が 論理型 (boolean) であれば true を返し、そうでなければ false を返します。
var_dump(is_bool(true)); // bool(true)
var_dump(is_bool(false)); // bool(true)
'integer'
'integer' 文字列は、小数点のない数値であるデータタイプが 整数型 (integer) であることを示します。これは正の整数、負の整数、または 0 を含むすべての整数値を表します。
次のような例を通して理解できます。
var_dump(gettype(10)); // string(7) "integer"
var_dump(gettype(-10)); // string(7) "integer"
var_dump(gettype(0)); // string(7) "integer"
データタイプが 整数型 (integer) であるかチェックする際は、is_int() 関数を使用することをお勧めします。is_int() 関数は 整数型 (integer) タイプにのみ適用されるため、gettype() 関数よりも 整数型 (integer) タイプをチェックするにおいて、より明示的で推奨されます。
補足説明
is_int() 関数は、与えられた値が 整数型 (integer) であるかを確認します。
引数として渡された値が 整数型 (integer) であれば true を返し、そうでなければ false を返します。
var_dump(is_int(10)); // bool(true)
var_dump(is_int(-10)); // bool(true)
var_dump(is_int(0)); // bool(true)
'double'
'double' 文字列は、小数点を含む数値であるデータタイプが 浮動小数点型 (float, または double) であることを示します。浮動小数点数は、整数とは異なり、小数点以下が含まれる数値を表現する際に使用されます。
次のような例を通して理解できます。
var_dump(gettype(10.5)); // string(6) "double"
var_dump(gettype(-10.5)); // string(6) "double"
var_dump(gettype(0.0)); // string(6) "double"
データタイプが 浮動小数点型 (float, または double) であるかチェックする際は、is_float() 関数を使用することをお勧めします。is_float() 関数は 浮動小数点型 (float, または double) タイプにのみ適用されるため、gettype() 関数よりも 浮動小数点型 (float, または double) タイプをチェックするにおいて、より明示的で推奨されます。
補足説明
is_float() 関数は、与えられた値が 浮動小数点型 (float) であるかを確認します。
引数として渡された値が 浮動小数点型 (float) であれば true を返し、そうでなければ false を返します。
var_dump(is_float(10.5)); // bool(true)
var_dump(is_float(-10.5)); // bool(true)
var_dump(is_float(0.0)); // bool(true)
'string'
'string' 文字列は、一連の文字の集合であるデータタイプが 文字列型 (string) であることを示します。文字列は必ずシングルクォーテーション('')またはダブルクォーテーション("")で囲んで表現する必要があります。
次のような例を通して理解できます。
var_dump(gettype('Hello, world!')); // string(6) "string"
var_dump(gettype('ようこそ。はじめまして!')); // string(6) "string"
var_dump(gettype('')); // string(6) "string"
データタイプが 文字列型 (string) であるかチェックする際は、is_string() 関数を使用することをお勧めします。is_string() 関数は 文字列型 (string) タイプにのみ適用されるため、gettype() 関数よりも 文字列型 (string) タイプをチェックするにおいて、より明示的で推奨されます。
補足説明
is_string() 関数は、与えられた値が 文字列型 (string) であるかを確認します。
引数として渡された値が 文字列型 (string) であれば true を返し、そうでなければ false を返します。
var_dump(is_string('Hello, world!')); // bool(true)
var_dump(is_string('ようこそ。はじめまして!')); // bool(true)
var_dump(is_string('')); // bool(true)
'array'
'array' 文字列は、複数の値を一つの変数に格納できるデータタイプが 配列型 (array) であることを示します。PHP の配列は、数値をキーとして使用する添字配列(indexed array)と、文字列をキーとして使用する連想配列(associative array)の両方を含みます。
次のような例を通して理解できます。
var_dump(gettype(array())); // string(5) "array"
var_dump(gettype([])); // string(5) "array"
var_dump(gettype([1, 2, 3])); // string(5) "array"
var_dump(gettype(['Hello', 'world'])); // string(5) "array"
var_dump(gettype(['name' => 'John Doe', 'age' => 30])); // string(5) "array"
データタイプが 配列型 (array) であるかチェックする際は、is_array() 関数を使用することをお勧めします。is_array() 関数は 配列型 (array) タイプにのみ適用されるため、gettype() 関数よりも 配列型 (array) タイプをチェックするにおいて、より明示的で推奨されます。
補足説明
is_array() 関数は、与えられた値が 配列型 (array) であるかを確認します。
引数として渡された値が 配列型 (array) であれば true を返し、そうでなければ false を返します。
var_dump(is_array(array())); // bool(true)
var_dump(is_array([])); // bool(true)
var_dump(is_array([1, 2, 3])); // bool(true)
var_dump(is_array(['Hello', 'world'])); // bool(true)
var_dump(is_array(['name' => 'John Doe', 'age' => 30])); // bool(true)
'object'
'object' 文字列は、データタイプが オブジェクト型 (object) であることを示します。PHP においてオブジェクトは、クラス(class)から生成されたインスタンス(instance)であり、クラスで定義されたプロパティ(データ)とメソッド(振る舞い)を一つの単位としてカプセル化して含んでいます。
次のような例を通して理解できます。
class MyClass {
public $name = 'John Doe';
public $age = 30;
}
$obj1 = new MyClass();
$obj2 = clone $obj1;
var_dump(gettype($obj1)); // string(6) "object"
var_dump(gettype($obj2)); // string(6) "object"
データタイプが オブジェクト型 (object) であるかチェックする際は、is_object() 関数を使用することをお勧めします。is_object() 関数は オブジェクト型 (object) タイプにのみ適用されるため、gettype() 関数よりも オブジェクト型 (object) タイプをチェックするにおいて、より明示的で推奨されます。
補足説明
is_object() 関数は、与えられた値が オブジェクト型 (object) であるかを確認します。
引数として渡された値が オブジェクト型 (object) であれば true を返し、そうでなければ false を返します。
class MyClass {
public $name = 'John Doe';
public $age = 30;
}
$obj1 = new MyClass();
$obj2 = clone $obj1;
var_dump(is_object($obj1)); // bool(true)
var_dump(is_object($obj2)); // bool(true)
'resource'
'resource' 文字列は、データタイプが リソース型 (resource) であることを示します。リソースは、ファイルハンドル、データベース接続、またはネットワークストリームのように、PHP 外部のリソースと相互作用する際に使用される特殊なデータタイプです。
次のような例を通して理解できます。
// ファイルを開きます。
$fp = fopen('test.txt', 'w');
var_dump(gettype($fp)); // string(8) "resource"
データタイプが リソース型 (resource) であるかチェックする際は、is_resource() 関数を使用することをお勧めします。is_resource() 関数は リソース型 (resource) タイプにのみ適用されるため、gettype() 関数よりも リソース型 (resource) タイプをチェックするにおいて、より明示的で推奨されます。
補足説明
is_resource() 関数は、与えられた値が リソース型 (resource) であるかを確認します。
引数として渡された値が リソース型 (resource) であれば true を返し、そうでなければ false を返します。
// ファイルを開きます。
$fp = fopen('test.txt', 'w');
var_dump(is_resource($fp)); // bool(true)
'resource (closed)'
'resource (closed)'データ型は、外部リソースとやり取りしていたリソースが既に閉じられたことを示すデータ型です。このデータ型は、リソースがもはやアクティブではなく使用できないことを表します。
次のような例を通して理解できます。
// ファイルを開きます。
$fp = fopen('test.txt', 'w');
// ファイルハンドルを閉じます。
fclose($fp);
echo gettype($fp); // 'resource (closed)'
注意してください!'resource (closed)'データ型を確認する際には、is_resource()関数を使用しないでください!is_resource()関数は'resource'型の変数かどうかを確認する関数であるため、'resource (closed)'データ型はis_resource()関数でチェックできません。結果はfalseです。
// ファイルを開きます。
$fp = fopen('test.txt', 'w');
// ファイルハンドルを閉じます。
fclose($fp);
if (gettype($fp) == 'resource (closed)') {
echo "ファイルポインタが閉じられています。"; // 出力
} else {
echo 'ファイルポインタは開いています。';
}
'resource (closed)'データ型を確認するには、gettype()関数を使用して変数のデータ型を確認することが明確です。
'NULL'
'NULL' 文字列は、データタイプが NULL であることを示します。これは変数に値が割り当てられていないか、あるいは明示的に null 値を割り当てて変数に値がないことを示す際に使用される特殊なデータタイプです。
次のような例を通して理解できます。
$a = null;
$b;
var_dump(gettype($a)); // string(4) "NULL"
var_dump(gettype($b)); // string(4) "NULL"
データタイプが NULL であるかチェックする際は、is_null() 関数を使用することをお勧めします。is_null() 関数は NULL タイプにのみ適用されるため、gettype() 関数よりも NULL タイプをチェックするにおいて、より明示的で推奨されます。
補足説明
is_null() 関数は、与えられた値が NULL であるかを確認します。
引数として渡された値が NULL であれば true を返し、そうでなければ false を返します。
$a = null;
$b;
var_dump(is_null($a)); // bool(true)
var_dump(is_null($b)); // bool(true)
'unknown type'
覚えておきましょう!
PHP 7.2.0以前のバージョンでは、gettype()関数が閉じられたリソースを確認する際に'unknown type'という値を返していました。これは閉じたリソースに関する情報を不明瞭に表示する問題がありました。PHP 7.2.0以降では、この問題を改善するために、gettype()関数が閉じられたリソースを確認する際に'resource (closed)'という値を返すように変更されました。これにより、開発者はリソス変数が閉じられた状態であることをより明確に把握できるようになりました。
PHP 7.2.0以降、PHPでは'unknown type'の値はもはや存在しません。