(PHP 8)
get_debug_type — 変数の型名をデバッグしやすい形で取得する
PHP の変数 value
の、解決済みの名前を返します。 この関数は、オブジェクトをクラス名に、 リソースをリソース型の名前に、 そしてスカラー型の値を型宣言で使われている通常の名前に解決します。
gettype() は、歴史的な理由で決まった型の名前を返します。 この関数は、それよりも実際に使われている型により近い名前を返すという点が異なります。
value
型をチェックする変数。
返される文字列としてあり得るのは、以下になります:
型 + 状態 | 戻り値 | 備考 |
---|---|---|
null | "null" | - |
boolean (true または false) | "bool" | - |
整数型 | "int" | - |
浮動小数点型 | "float" | - |
文字列 | "string" | - |
配列 | "array" | - |
リソース | "resource (resourcename)" | - |
リソース(閉じられたもの) | "resource (closed)" | 例: fclose で閉じられたファイルストリーム |
名前付きのクラスのオブジェクト | 名前空間も含めた、クラスの完全修飾名。 例: Foo\Bar | - |
無名クラスのオブジェクト | "class@anonymous" | 無名クラスのオブジェクトは、$x = new class { ... } という文法で作成されます。 |
例1 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;
?>
上の例の出力は、 たとえば以下のようになります。
null bool int float string array resource (stream) resource (closed) stdClass class@anonymous