(PHP 8)
get_debug_type — Obtém o nome do tipo de uma variável de forma adequada a depuração
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.
value
A variáver a ter o tipo verificado.
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 { ... }
|
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