php8.0 Union Types v2を使用する

php8.0 Union Types v2を使用する

php8.0の新機能、引数や戻りに複数の型を定義することができるUnion Types v2を使用したサンプルコードを記述してます。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0

Union Types v2使い方

Union Types v2では、引数や戻りに複数の型を定義することが可能です。

以下は、Union Types v2を使用して、複数の型を定義したサンプルコードとなります。

<?php

class Hoge {

    public function calc(float|int $bar): int|float {
        return $bar * 2;
    }
}

$hoge = new Hoge();

echo $hoge->calc(1)."\n";
// 2

echo $hoge->calc(1.1)."\n";
// 2.2

型をintだけを指定した場合は、以下の結果となります。

<?php

class Hoge {

    public function calc(int $bar): int {
        return $bar * 2;
    }
}

$hoge = new Hoge();

echo $hoge->calc(1)."\n";
// 2

echo $hoge->calc(1.1)."\n";
// 2