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

PHP8の共用体タイプ


PHP 8で共用体型を使用すると、単一の型を使用する代わりに、2つ以上の型の値を使用できます。複数のタイプを指定するには、縦線(|) それらに参加するために使用されます。

共用体タイプは、パラメーター、戻りタイプ、およびプロパティをサポートします。

構文

type1|type2|……|type_n

例1:共用体タイプ

<?php
   class Number
   {
      private int | float $num;
      public function getNum():
      float | int
      {
         return $this->num
      }
      public function setNum(float | int):
      void
      {
         $this->num = $num;
      }
   }
?>

例2:共用体型を使用したPHP8プログラム

<?php
   class Number{
      private int|float $number;
      public function setNumber(int|float $number): void {
         $this->number = $number;
      }
      public function getNumber(): int|float {
         return $this->number;
      } #passing floats or integer values to the number object
   }
   $number = new Number();
   $number->setNumber(5);
   print_r($number->getNumber());
   $number->setNumber(11.54);
   print_r($number->getNumber());
?>

出力

511.54

共用体型のNullable型

PHP 7.1では、null許容型は疑問符?typeとともに使用されます。 。 PHP 8では、null許容型を type | nullとして宣言できます。 。例: float | int | null 、ただし、?float | intとして宣言することはできません 。

Nullable型の構文

type1|type2|null

?type1 | type2のように宣言するべきではありません これはあいまいな宣言になるためです。

  • コンパイル時のエラーチェック − PHPでは、型宣言での共用体型の重複型または冗長型は許可されていません。このチェックは、クラス/インターフェースを自動ロードせずにコンパイル時に行われます。

  • 重複するタイプは許可されていません int | intのようにPHPで重複を宣言することはできません また、 int |?int 許可されていません。構文エラーが返されるためです。 「致命的なエラー:重複したタイプは…オンラインで冗長です。」

  • voidタイプは許可されていません − PHP 8では、共用体タイプは void 他のタイプと組み合わせることはできません。

Function foo(): void|null{}

PHP8のFalseType

False型は、PHP 8のUnion型の一部です。ほとんどの場合、戻り値がないことやエラーを示すために、戻り値としてnullを使用します。例:学生IDで学生を検索するクラスメソッドがあるとします。学生IDが存在しない場合、学生IDが存在しないことを示すためにnullが表示される場合があります。しかし、PHPは falseを使用します 学生IDの場合 見つかりません。

  • 失敗には、nullタイプではなくfalseタイプが使用されます。

  • falseをスタンドアロン型として使用することはできません。また、null許容型のスタンドアロン型も使用できません。つまり、false、false | null、および?falseを使用することはできません。

  • パラメータ、プロパティ、戻り値など、タイプが受け入れられる場合は常にfalseを使用できます。

  • 真のリテラル型はなく、代わりにブール型のみを使用できます。

<?php
   Class Student {
      public function find(int $id): User|false
      {
         // ...
      }
   }
?>

  1. PHP型演算子

    はじめに PHPでは、特定の変数が特定のクラスのオブジェクトであるかどうかを確認できます。この目的のために、PHPにはインスタンスがあります オペレーター。 構文 $var instanceof class この演算子はブール値TRUEを返します。$varはクラスのオブジェクトです。それ以外の場合はFALSEを返します 例 次の例では、instanceof演算子は、ユーザー定義のテストクラスの特定のオブジェクトかどうかを確認します 例 <?php class testclass{    //class body } $a=new testclass(); if

  2. PHP pi()関数

    定義と使用法 pi ()関数は数学定数Πの値を返します。 PHPで定義された事前定義された定数に等しいfloat値3.14159265359を返します--M_PI 構文 pi ( void ) : float パラメータ この関数はパラメータを必要としません 戻り値 PHP pi()関数は、数学定数Πを返し、事前定義された数学定数M-PIと同じです。 M_PIを使用する代わりに、数式でpi()関数を使用できます。 PHPバージョン この関数は、PHPバージョン4.x、PHP 5.x、およびPHP7.xで使用できます。 例 次の例では、円の面積の計算にpi()関数を使用しています。