get_debug_type

(PHP 8)

get_debug_typeВозвращает имя типа переменной в виде, подходящем для отладки

Описание

get_debug_type(mixed $value): string

Возвращает преобразованное имя переменной PHP value. Функция преобразует объекты в имя их класса, ресурсы - в имя их типа ресурса, а скалярные значения - в общепринятое имя их типа, которое бы использовалось в объявлении типов.

Функция отличается от gettype() тем, что возвращает имена типов, которые больше соответствуют фактическому использованию, а не те, которые присутствуют по историческим причинам.

Список параметров

value

Переменная, у которой проверяется тип.

Возвращаемые значения

Возможные значения для возвращаемой строки:

Тип + Состояние Возвращаемое значение Замечания
null "null" -
Логические значения (true или false) "bool" -
Целые числа "int" -
Числа с плавающей точкой "float" -
Строки "string" -
Массивы "array" -
Ресурсы "resource (resourcename)" -
Ресурсы (закрытые) "resource (closed)" Пример: файловый поток после закрытия с помощью fclose.
Объекты именованных классов Полное имя класса, включая его пространство имён, например, Foo\Bar -
Объекты анонимных классов "class@anonymous" Анонимные классы - это классы, созданные с использованием синтаксиса $x = new class { ... }.

Примеры

Пример #1 Пример использования get_debug_type()

<?php
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(__FILE__, '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;
?>

Вывод приведённого примера будет похож на:

null
bool
int
float
string
array
resource (stream)
resource (closed)
stdClass
class@anonymous

Смотрите также

  • gettype() - Возвращает тип переменной
  • get_class() - Возвращает имя класса, которому принадлежит объект

add a note add a note

User Contributed Notes 1 note

up
1
vyacheslav dot belchuk at gmail dot com
1 year ago
Also, the function returns the correct type of Closure, as opposed to gettype()

<?php

echo get_debug_type(function () {}) . PHP_EOL;
echo
get_debug_type(fn () => '') . PHP_EOL . PHP_EOL;

echo
gettype(function () {}) . PHP_EOL;
echo
gettype(fn () => '');

?>

Output:

Closure
Closure

object
object
To Top