PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのgettype()とPHP 8のget_debug_type()の違い


以前のバージョンのPHPでは、変数の型を取得する場合は、 gettype()を使用していました。 働き。この関数は、文字列のカスタムで変数の型を返します。整数、文字列、配列、ブール値、倍精度浮動小数点数、リソース、NULL、不明な型など、考えられるすべての値を返します。

ただし、 gettypeに問題がありました 働き。ネイティブで使い慣れたタイプ名は返されません。 floatの代わりにdoubleを返し、intの代わりにintegerを返します。

この問題を克服するために、PHP8は get_debug_typeを使用します 機能。

get_debug_type()関数

PHP 8では、 get_debug_type 関数は、変数の真のネイティブタイプを返します。 doubleとintegerの代わりにfloat、intを返します。この関数は、オブジェクトのクラス名を自動的に解決します。

get_debug_type() 関数は

に役立ちます
  • デバッグ

  • ビジネスロジック

  • エラー報告

例:PHPでgettype()関数を使用する

<?php
   class Novel {}
   class Comments {}
   $novel = new Novel();
   if(! ($novel instanceof Comment)) {
      echo 'Expected ' . Comment::class . ' still got My' . (is_object($novel) ?
      get_class($novel) : gettype($novel));
   }
?>

出力

Expected Comment still got MyNovel

例:PHP 8でget_debug_type()関数を使用する

<?php
   class Novel {}
   class Comments {}
   $novel = new Novel();
   if(! ($novel instanceof Comment)) {
      echo 'Expected '.Comment::class.' still got My'.get_debug_type($novel);
   }
?>

出力

Expected Comment still got MyNovel

  1. C#でのメソッドと関数の違い

    メソッドと関数はC#でも同じです。 ただし、メソッドはC#で使用され、指定されたクラスを介して動作する関数です。メソッドは、一緒にタスクを実行するステートメントのグループです。すべてのC#プログラムには、Mainという名前のメソッドを持つクラスが少なくとも1つあります。 以下は、C#でメソッドを作成する方法を示す簡単な例です。 例 class NumberManipulator {    public int FindMax(int num1, int num2) {       /* local variable declaration

  2. Pythonのメソッドと関数の違い

    機能 関数は、特定のタスクを実行するためのコードのブロックであり、独自のスコープを含み、名前で呼び出されます。すべての関数には、ゼロ(no)引数または複数の引数を含めることができます。終了時に、関数は1つ以上の値を返すことができる場合とできない場合があります。 基本的な関数構文 def functionName( arg1, arg2,….):    …….    # Function_body    …….. 独自の(ユーザー)、sum(ユーザーは任意の名前を