(PHP 8)
get_debug_type — Renvoie le nom du type de la variable d'une manière adaptée au débogage
Renvoie le nom résolu de la variable PHP value
.
Cette fonction résoudra les objets à leur nom de classe, les ressources à leur
nom de type de ressource, et les valeurs scalaires à leur nom commun tel qu'il serait utilisé dans les déclarations
de type.
Cette fonction diffère de gettype() en ce qu'elle renvoie des noms de type qui sont plus cohérents avec l'utilisation réelle, plutôt que ceux présents pour des raisons historiques.
value
La variable dont le type doit être vérifié.
Les types possibles de retour chaîne de caractères sont :
Type + Etat | Valeur de retour | Notes |
---|---|---|
null |
"null"
|
- |
Booléens (true or false ) |
"bool"
|
- |
Nombres entiers |
"int"
|
- |
Nombres à virgules flottantes |
"float"
|
- |
Chaines de caractères |
"string"
|
- |
Tableaux |
"array"
|
- |
Ressources |
"resource (resourcename)"
|
- |
Ressources (Closed) |
"resource (closed)"
|
Exemple: Un stream de fichier après être fermé avec fclose(). |
Objets depuis des Classes Nommées |
Le nom complet de la classe incluant le namespace par exemple Foo\Bar
|
- |
Objets depuis des Classes Anonymes |
"class@anonymous" ou le nom de la classe parente/le nom de l'interface si la classe étend une autre classe ou
implémente une interface, par exemple "Foo\Bar@anonymous"
|
Les classes anonymes sont créer via la syntaxe $x = new class { ... }
|
Exemple #1 Exemple 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('/examples/book.xml', '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;
?>
Résultat de l'exemple ci-dessus est similaire à :
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