ホームページ  >  記事  >  バックエンド開発  >  PHP8 関数: get_debug_type()。変数の型情報を簡単に取得できます。

PHP8 関数: get_debug_type()。変数の型情報を簡単に取得できます。

PHPz
PHPzオリジナル
2023-05-16 08:46:351086ブラウズ

PHP8 には新しい関数 get_debug_type() が導入されており、変数の型情報を簡単に取得できるため、コードの作成が容易になります。

多くの場合、コード内の変数の型情報を取得する必要があります。たとえば、コードをデバッグするときに変数の型を決定したり、多態性コードを作成するときに変数の型を確認する必要がある場合があります。 PHP8 より前は、gettype() 関数またはその他の回避策を使用することによってのみこれを実現できましたが、今では get_debug_type() 関数を使用して変数の型情報を簡単に取得できるようになりました。

get_debug_type() 関数は PHP8 バージョンで導入され、その構文は非常に単純です。変数を引数として受け取り、変数の型を表す文字列を返します。例:

$str = "Hello, World!";
$type = get_debug_type($str);
echo $type; // 输出"string"

上の例では、文字列変数 $str を get_debug_type() 関数に渡し、戻り値を $type 変数に割り当てます。 $str は文字列であるため、get_debug_type() 関数は「string」を返します。

別の例を見てみましょう:

class Animal {}
class Cat extends Animal {}

$animal = new Animal();
$cat = new Cat();

echo get_debug_type($animal); // 输出 "Animal"
echo get_debug_type($cat); // 输出 "Cat"

上の例では、Animal クラスと Cat クラスを定義し、Cat クラスは Animal クラスを継承しています。次に、$animal オブジェクトと $cat オブジェクトを作成し、それらを get_debug_type() 関数に渡します。 get_debug_type() 関数は、オブジェクト タイプが異なるため、それぞれ「Animal」と「Cat」を返します。

PHP8 より前では、gettype() 関数を使用して変数の型を取得できました。

$str = "Hello, World!";
$type = gettype($str);
echo $type; // 输出"string"

上記のコードは、期待どおりの結果「string」を出力します。ただし、gettype() 関数にはいくつかの制限があります。たとえば、gettype() 関数は変数の型を表す文字列を返します。 gettype() 関数を使用してオブジェクトをチェックすると、「object」が返されますが、オブジェクトのクラス名はわかりません。これは、オブジェクトの型を知るためにさらに多くのコードを記述する必要があることを意味します。

get_debug_type() 関数を使用する場合、追加のコードを記述する必要はありません。 get_debug_type() 関数によって返される文字列は、オブジェクトのクラス名を含む変数のタイプを表します。これにより、ポリモーフィックなコードを書く際が容易になります。たとえば、入力パラメータのタイプに応じてさまざまな操作を実行する関数を作成できます。

function do_something($thing) {
  $type = get_debug_type($thing);
  if ($type === "string") {
    return strtoupper($thing);
  } else if ($type === "array") {
    return array_reverse($thing);
  } else {
    return "I don't know what to do with this thing!";
  }
}

echo do_something("Hello, World!"); // 输出 "HELLO, WORLD!"
echo do_something([1, 2, 3, 4]); // 输出 Array( [0] => 4, [1] => 3, [2] => 2, [3] => 1 )
echo do_something(new Animal()); // 输出 "I don't know what to do with this thing!"

上の例では、入力パラメータを受け取り、入力パラメータに基づいてさまざまな操作を実行する do_something() 関数を作成しました。その種類について。文字列に対して大文字変換を実行し、配列に対して逆変換を実行したいのですが、その他すべてについては、どうすればよいのかわかりません。 get_debug_type() 関数を使用して入力パラメータの型を取得し、その型に基づいてさまざまな操作を実行します。

つまり、 get_debug_type() は変数の型情報を簡単に取得できる非常に便利な関数です。コードをデバッグする場合でも、ポリモーフィックなコードを作成する場合でも、コードをより簡単かつ効率的に作成するのに役立ちます。まだ PHP8 を試したことがない場合は、次の PHP プロジェクトで get_debug_type() 関数を試してみると、その便利さに驚くと思います。

以上がPHP8 関数: get_debug_type()。変数の型情報を簡単に取得できます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。