PHP检测变量类型有五种方法:一、gettype()返回小写类型字符串;二、is_*系列函数返回布尔值用于判断;三、var_dump()直观显示类型与值;四、get_debug_type()(PHP 8.0+)返回更精准类型名;五、is_object()与get_class()组合识别具体对象类名。

如果您需要确认PHP中某个变量的具体数据类型,可以使用内置函数进行检测。以下是检查变量类型的常用方法:
一、使用gettype()函数
gettype()函数返回变量的类型名称字符串,适用于调试和类型诊断场景,结果为小写英文字符串。
1、定义一个变量,例如 $var = 42;
2、调用 gettype($var) 获取其类型,返回值为 "integer";
立即学习“PHP免费学习笔记(深入)”;
3、对字符串 $var = "hello"; 调用 gettype($var),返回值为 "string";
4、对空数组 $var = []; 调用 gettype($var),返回值为 "array";
5、对null值 $var = null; 调用 gettype($var),返回值为 "NULL"。
二、使用is_*系列类型判断函数
is_*系列函数返回布尔值,用于条件判断,性能优于gettype(),且语义明确、不易出错。
1、使用 is_int($var) 判断是否为整型,返回 true 或 false;
2、使用 is_string($var) 判断是否为字符串,对 "abc" 返回 true,对 123 返回 false;
3、使用 is_array($var) 判断是否为数组,对 [1,2,3] 返回 true;
4、使用 is_null($var) 判断是否为null,对 null 值返回 true;
5、使用 is_bool($var) 判断是否为布尔值,对 true 或 false 返回 true,对 "true" 字符串返回 false。
三、使用var_dump()函数辅助查看类型与值
var_dump()不是类型检查函数,但能同时输出变量的类型和值,是开发调试中最直观的类型验证手段。
1、执行 var_dump(42); 输出 int(42);
2、执行 var_dump("test"); 输出 string(4) "test";
3、执行 var_dump([1,2]); 输出 array(2) { [0]=> int(1) [1]=> int(2) };
4、执行 var_dump(null); 输出 NULL;
5、执行 var_dump(new stdClass()); 输出 object(stdClass)#1 (0) {}。
四、使用get_debug_type()函数(PHP 8.0+)
get_debug_type()是PHP 8.0引入的函数,返回更精确、用户友好的类型名称,尤其对对象和联合类型支持更好。
1、对普通整数 123 调用 get_debug_type(123),返回 "int";
2、对 DateTime 对象调用 get_debug_type(new DateTime()),返回 "DateTime";
3、对匿名类实例调用 get_debug_type(new class {}),返回 "class@anonymous";
4、对联合类型变量(如 int|string)在反射上下文中,该函数可体现更准确的结构;
5、对 null 值调用 get_debug_type(null),返回 "null"(小写,与gettype()的"NULL"不同)。
五、使用is_object()与get_class()组合识别具体对象类型
当需区分不同类的实例时,单独使用is_object()仅知其为对象,配合get_class()可获取完整类名。
1、定义类 class User {};
2、创建实例 $u = new User();
3、is_object($u) 返回 true;
4、get_class($u) 返回 "User";
5、对内置对象如 PDO 实例,get_class($pdo) 返回 "PDO"。











