PHP 8.4.1 Released!

get_debug_type

(PHP 8)

get_debug_typeObtém o nome do tipo de uma variável de forma adequada a depuração

Descrição

get_debug_type(mixed $value): string

Retorna o nome resolvido da variável PHP value. Esta função resolverá objetos ao nome da classe deles, recursos ao nome do tipo de recurso deles, e valores escalares ao nome comum deles como seria usado em declarações de tipo.

Este função difere de gettype() pelo fato de retornar nomes de tipo que são mais consistentes com o uso real, ao invés daqueles exsitentes por razões históricas.

Parâmetros

value

A variáver a ter o tipo verificado.

Valor Retornado

Valores possíveis para a string de retorno são:

Tipo + Estado Valor de Retorno Notas
nulo "null" -
Booleanos (true ou false) "bool" -
Inteiros "int" -
Números de ponto flutuante "float" -
Strings "string" -
Arrays "array" -
Recursos "resource (resourcename)" -
Recursos (Fechados) "resource (closed)" Exemplo: um fluxo de arquivo depois de ter sido fechado com fclose().
Objetos de Classes com Nome O nome completo da classe incluindo seu espaço de nomes, ex.: Foo\Bar -
Objetos de Classes Anônimas "class@anonymous" ou nome da classe pai/interface se a classe estende outra classe ou implementa uma interface, p.ex.: "Foo\Bar@anonymous" Classes anônimas são aquelas criadas através da sintaxe $x = new class { ... }

Exemplos

Exemplo #1 Exemplo de get_debug_type()

<?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(__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;

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;

?>

O exemplo acima produzirá algo semelhante a:

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

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
5
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