# get_debug_type

(PHP 8)

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

### Beschreibung

get_debug_type(mixed `$value`): string

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.

This function differs from gettype() in that it returns type names that are more consistent with actual usage, rather than those present for historical reasons.

### Parameter-Liste

`value`

  The variable being type checked.

### Rückgabewerte

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

### Beispiele

Beispiel #1 get_debug_type() example

`<?php
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;
?>`

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

    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

### Siehe auch

- gettype() - Liefert den Datentyp einer Variablen
- get_class() - Ermittelt den Klassennamen eines Objekts

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open