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 (verdadeiro ou falso) "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

Example #1 Exemplo de 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;

namespace Foo;

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