定義と使用方法
- PHPバージョン
- 4+
gettype()関数は、引数として渡された値のデータ型を文字列として返します。
この関数を使用すると、変数のデータ型を確認するのに非常に便利です。
基本の例
$number = 10;
$string = 'Hello, world!';
$array = [1, 2, 3];
$object = new stdClass();
echo gettype($number); // 'integer'
echo gettype($string); // 'string'
echo gettype($array); // 'array'
echo gettype($object); // 'object'
settype()関数は、引数として渡された変数を指定されたデータ型に設定します。
構文
gettype(mixed $value): string
引数
$value |
データ型を確認するための変数または値 |
|---|
戻り値
変数のデータ型を文字列として返します。返される可能性のあるデータ型の一覧は以下の通りです。
上に列挙されているものは、gettype()関数が返す可能性のある文字列の一覧です。この一覧をもとに、変数のデータ型を確認することができます。
'boolean'
'boolean'データ型は、2つの値のいずれかであるtrue(真)またはfalse(偽)だけを表すデータ型です。主に条件文や論理演算で使用されます。
次のような例を通して理解できます。
$var1 = true;
$var2 = false;
$type1 = gettype($var1); // $type1には'boolean'が格納されます。
$type2 = gettype($var2); // $type2には'boolean'が格納されます。
// 主に条件文や論理演算で使用されます。
if ($var1) {
echo '$var1はtrueです。';
} else {
echo '$var1はfalseです。';
}
if ($var2) {
echo '$var2はtrueです。';
} else {
echo '$var2はfalseです。';
}
'boolean'データ型をチェックする際には、is_bool()関数を使用することが推奨されます。
is_bool()関数は'boolean'データ型にのみ適用されるため、gettype()関数よりも'boolean'データ型をチェックする際に、より明示的で安全です。
$var1 = true;
$var2 = false;
// is_bool()関数を使用して変数がブール型かどうか確認します。
if (is_bool($var1)) {
echo '$var1はブール型(boolean)です。';
} else {
echo '$var1はブール型(boolean)ではありません。';
}
if (is_bool($var2)) {
echo '$var2はブール型(boolean)です。';
} else {
echo '$var2はブール型(boolean)ではありません。';
}
is_bool()関数は、変数のデータ型をチェックし、そのデータ型がブール型(boolean)である場合はtrueを返し、そうでない場合はfalseを返します。
'integer'
'integer'データ型は、整数データを表すデータ型です。これは、正の整数、負の整数、または0を含むすべての整数値を表します。
次のような例を通して理解できます。
$num1 = 10;
$num2 = -10;
$num3 = 0;
echo gettype($num1); // 'integer'
echo gettype($num2); // 'integer'
echo gettype($num3); // 'integer'
'integer'データ型をチェックする際には、is_int()関数を使用することが推奨されます。is_int()関数は'integer'データ型にのみ適用されるため、gettype()関数よりも'integer'データ型をチェックする際に、より明示的で安全です。
$num1 = 10;
$num2 = -10;
$num3 = 0;
echo is_int($num1); // true
echo is_int($num2); // true
echo is_int($num3); // true
is_int()関数は、変数のデータ型をチェックし、そのデータ型が整数である場合はtrueを返し、そうでない場合はfalseを返します。
'double'
'double'データ型は、浮動小数点数を表すデータ型です。浮動小数点数は小数点を含む数値であり、整数とは異なり小数部分を持ちます。
次のような例を通して理解できます。
$num1 = 10.5;
$num2 = -10.5;
$num3 = 0.0;
echo gettype($num1); // 'double'
echo gettype($num2); // 'double'
echo gettype($num3); // 'double'
'double'データ型をチェックする際には、is_float()関数を使用することが推奨されます。is_float()関数は'double'データ型にのみ適用されるため、gettype()関数よりも'double'データ型をチェックする際に、より明示的で安全です。
$num1 = 10.5;
$num2 = -10.5;
$num3 = 0.0;
echo is_float($num1); // true
echo is_float($num2); // true
echo is_float($num3); // true
is_float()関数は、変数のデータ型をチェックし、そのデータ型が浮動小数点数である場合はtrueを返し、そうでない場合はfalseを返します。
'string'
'string'データ型は、文字列を表すデータ型です。文字列はシングルクォート('')またはダブルクォート("")で囲まれている必要があります。
次のような例を通して理解できます。
$str1 = 'Hello, world!';
$str2 = 'ようこそ。はじめまして!';
$str3 = '';
echo gettype($str1); // 'string'
echo gettype($str2); // 'string'
echo gettype($str3); // 'string'
'string'データ型をチェックする際には、is_string()関数を使用することが推奨されます。is_string()関数は'string'データ型にのみ適用されるため、gettype()関数よりも'string'データ型をチェックする際に、より明示的で安全です。
$str1 = 'Hello, world!';
$str2 = 'ようこそ。はじめまして!';
$str3 = '';
echo is_string($str1); // true
echo is_string($str2); // true
echo is_string($str3); // true
is_string()関数は、変数のデータ型をチェックし、そのデータ型が文字列である場合はtrueを返し、そうでない場合はfalseを返します。
'array'
'array'データ型は、配列を表すデータ型です。PHPの配列には、数値インデックス配列(通常の配列)と連想配列の2種類があります。
次のような例を通して理解できます。
$arr1 = [1, 2, 3];
$arr2 = ['Hello', 'world'];
$arr3 = [];
$arr4 = [
'name' => 'John Doe',
'age' => 30
];
echo gettype($arr1); // 'array'
echo gettype($arr2); // 'array'
echo gettype($arr3); // 'array'
echo gettype($arr4); // 'array'
'array'データ型をチェックする際には、is_array()関数を使用することが推奨されます。is_array()関数は'array'データ型にのみ適用されるため、gettype()関数よりも'array'データ型をチェックする際に、より明示的で安全です。
$arr1 = [1, 2, 3];
$arr2 = ['Hello', 'world'];
$arr3 = [];
$arr4 = [
'name' => 'John Doe',
'age' => 30
];
echo is_array($arr1); // true
echo is_array($arr2); // true
echo is_array($arr3); // true
echo is_array($arr4); // true
is_array()関数は、
変数のデータ型をチェックし、そのデータ型が配列である場合はtrueを返し、そうでない場合はfalseを返します。
'object'
'object'データ型は、オブジェクトを表すデータ型です。PHPではオブジェクトはクラスから生成され、クラスはオブジェクトのプロパティとメソッドを定義します。オブジェクトはこれらのクラスのインスタンスとして、データと動作をまとめて含んでいます。
次のような例を通して理解できます。
class MyClass {
public $name = 'John Doe';
public $age = 30;
}
$obj1 = new MyClass();
$obj2 = clone $obj1;
echo gettype($obj1); // 'object'
echo gettype($obj2); // 'object'
'object'データ型をチェックする際には、is_object()関数を使用することが推奨されます。is_object()関数は'object'データ型にのみ適用されるため、gettype()関数よりも'object'データ型をチェックする際に、より明示的で安全です。
class MyClass {
public $name = 'John Doe';
public $age = 30;
}
$obj1 = new MyClass();
$obj2 = clone $obj1;
echo is_object($obj1); // true
echo is_object($obj2); // true
is_object()関数は、変数のデータ型をチェックし、そのデータ型がオブジェクトである場合はtrueを返し、そうでない場合はfalseを返します。
'resource'
'resource'データ型は、外部リソースとやり取りする際に使用されるデータ型です。例えば、ファイル、データベース接続、画像、ネットワーク接続などがリソースに該当します。
次のような例を通して理解できます。
// ファイルを開きます。
$fp = fopen('test.txt', 'w');
echo gettype($fp); // 'resource'
'resource'データ型をチェックする際には、is_resource()関数を使用することが推奨されます。is_resource()関数は'resource'データ型にのみ適用されるため、gettype()関数よりも'resource'データ型をチェックする際に、より明示的で安全です。
// ファイルを開きます。
$fp = fopen('test.txt', 'w');
echo is_resource($fp); // true
is_resource()関数は、変数のデータ型をチェックし、そのデータ型がリソースである場合はtrueを返し、そうでない場合はfalseを返します。
'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;
echo gettype($a); // 'NULL'
echo gettype($b); // 'NULL'
'NULL'データ型をチェックする際には、is_null()関数を使用することが推奨されます。is_null()関数は'NULL'データ型にのみ適用されるため、gettype()関数よりも'NULL'データ型をチェックする際に、より明示的で安全です。
$a = null;
$b;
echo is_null($a); // true
echo is_null($b); // true
is_null()関数は、指定された変数がnullである場合はtrueを返し、そうでない場合はfalseを返します。
'unknown type'
覚えておきましょう!
PHP 7.2.0以前のバージョンでは、gettype()関数が閉じられたリソースを確認する際に'unknown type'という値を返していました。これは閉じたリソースに関する情報を不明瞭に表示する問題がありました。PHP 7.2.0以降では、この問題を改善するために、gettype()関数が閉じられたリソースを確認する際に'resource (closed)'という値を返すように変更されました。これにより、開発者はリソス変数が閉じられた状態であることをより明確に把握できるようになりました。
PHP 7.2.0以降、PHPでは'unknown type'の値はもはや存在しません。