Statement on glibc/iconv Vulnerability

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" Classes anônimas são aquelas criadas através da sintaxe $x = new class { ... }

Exemplos

Exemplo #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;
?>

O exemplo acima produzirá algo semelhante a:

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

Veja Também

add a note

User Contributed Notes 1 note

up
3
vyacheslav dot belchuk at gmail dot com
5 months 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