get_debug_type()

get_debug_type() — Gets the type name of a variable in a way that is suitable for debugging.

Built-in function of PHP 8.5. The manual lists it as available in PHP 8. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.

What it does

Returns the resolved name of the PHP variable value. This function will resolve objects to their class name, resources to their resource type name, and scalar values to their common name as would be used in type declarations.

Signature

get_debug_type(mixed $value): string

Parameters

ParameterTypeWhat it takes
$valuemixedThe variable being type checked.

Return value

Possible values for the returned string are: Type + State Return Value Notes null "null" - Booleans (true or false) "bool" - Integers "int" - Floats "float" - Strings "string" - Arrays "array" - Resources "resource (resourcename)" - Resources (Closed) "resource (closed)" Example: A file stream after being closed with fclose(). Objects from Named Classes The full name of the class including its namespace e.g. Foo\Bar - Objects from Anonymous Classes "class@anonymous" or parent class name/interface name if the class extends another class or implements an interface e.g. "Foo\Bar@anonymous" Anonymous classes are those created through the $x = new class { ... } syntax

Example

A runnable snippet:

namespace Foo; echo get_debug_type(null), PHP_EOL; echo get_debug_type(true), PHP_EOL; echo get_debug_type(1), PHP_EOL; echo get_debug_type(0.1), PHP_EOL; echo get_debug_type("foo"), PHP_EOL; echo get_debug_type([]), PHP_EOL; $fp = fopen('/examples/book.xml', 'rb'); echo get_debug_type($fp), PHP_EOL; fclose($fp); echo get_debug_type($fp), PHP_EOL; echo get_debug_type(new \stdClass), PHP_EOL; echo get_debug_type(new class {}), PHP_EOL; interface A {} interface B {} class C {} echo get_debug_type(new class implements A {}), PHP_EOL; echo get_debug_type(new class implements A,B {}), PHP_EOL; echo get_debug_type(new class extends C {}), PHP_EOL; echo get_debug_type(new class extends C implements A {}), PHP_EOL;

Output:

null bool int float string array resource (stream) resource (closed) stdClass class@anonymous Foo\A@anonymous Foo\A@anonymous Foo\C@anonymous Foo\C@anonymous

See also

gettype(), get_class()

All PHP 8.5 built-in functions

Reference card built from the PHP manual page get_debug_type() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.