PHP 变量处理函数

PHP get_debug_type() 函数返回变量的解析名称。此函数将把对象解析为它们的类名,将资源解析为它们的资源类型名称,并将标量值解析为它们在类型声明中使用的通用名称。

此函数不同于 gettype() 因为它返回与实际使用更一致的类型名称,而不是由于历史原因而出现的类型名称。

注意:此函数自 PHP 8.0.0 起可用。

语法

get_debug_type(variable) 

参数

variable必填。 指定要检查的变量。

返回值

返回变量的解析名称。返回字符串的可能值为:

类型 + 状态返回值注释
null"null"
布尔值(true 或 false)"bool"
整数"int"
浮点数"float"
字符串"string"
数组"array"
资源"resource (resourcename)"
资源(已关闭)"resource (closed)"示例:使用 fclose 关闭后的文件流。
命名类中的对象类的全名,包括其命名空间,例如Foo\Bar
来自匿名类的对象"class@anonymous"匿名类是通过 $x = new class { ... } 语法创建的

示例:get_debug_type() 示例

下面的示例显示 get_debug_type() 函数的用法。

<?php
echo "get_debug_type(10):      ".get_debug_type(10)."\n";  
echo "get_debug_type(10.5):    ".get_debug_type(10.5)."\n";
echo "get_debug_type(1e5):     ".get_debug_type(1e5)."\n";
echo "get_debug_type('10.5'):  ".get_debug_type('10.5')."\n";
echo "get_debug_type('xyz'):   ".get_debug_type('xyz')."\n";
echo "get_debug_type(false):   ".get_debug_type(false)."\n";
echo "get_debug_type(null):    ".get_debug_type(null)."\n";
echo "get_debug_type(array()): ".get_debug_type(array())."\n";
echo "get_debug_type([]):      ".get_debug_type([])."\n";
?> 

上述代码的输出将是:

get_debug_type(10):      int
get_debug_type(10.5):    float
get_debug_type(1e5):     float
get_debug_type('10.5'):  string
get_debug_type('xyz'):   string
get_debug_type(false):   bool
get_debug_type(null):    null
get_debug_type(array()): array
get_debug_type([]):      array 

示例:与对象和资源变量一起使用

考虑下面的示例,其中函数与对象和资源变量一起使用。假设当前工作目录中有一个名为 test.txt 的文件。

<?php
$file = fopen("test.txt","r");
echo get_debug_type($file)."\n";

fclose($file);
echo get_debug_type($file)."\n";

$iter = new ArrayIterator();
echo get_debug_type($iter)."\n";

echo get_debug_type(new stdClass)."\n";
echo get_debug_type(new class {})."\n";
?> 

上述代码的输出将是:

resource (stream)
resource (closed)
ArrayIterator
stdClass
class@anonymous