get_debug_type

変数の型名をデバッグしやすい形で取得する

説明

string get_debug_type(mixed $value)

PHP の変数 value の、解決済みの名前を返します。 この関数は、オブジェクトをクラス名に、 リソースをリソース型の名前に、 そしてスカラー型の値を型宣言で使われている通常の名前に解決します。

gettype は、歴史的な理由で決まった型の名前を返します。 この関数は、それよりも実際に使われている型により近い名前を返すという点が異なります。

パラメータ

value

型をチェックする変数。

戻り値

返される文字列としてあり得るのは、以下になります:

型 + 状態 戻り値 備考
null "null" -
boolean (true または false) "bool" -
整数型 "int" -
浮動小数点型 "float" -
文字列 "string" -
配列 "array" -
リソース "resource (resourcename)" -
リソース(閉じられたもの) "resource (closed)" 例: fclose で閉じられたファイルストリーム
名前付きのクラスのオブジェクト 名前空間も含めた、クラスの完全修飾名。 例: Foo\Bar -
無名クラスのオブジェクト "class@anonymous"。 クラスが別のクラスを継承したり、 インターフェイスを実装した場合は、親クラス/親のインターフェイス の名前。 例: "Foo\Bar@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;

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

上の例の出力は、 たとえば以下のようになります。

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

参考

  • gettype
  • get_class