Closed5

PHPのUnion型について学習メモ

maburimaburi

知りたいこと

  • PHPのUnion型についての概要

まとめ

他のUnion型を採用している言語と同じく、 型宣言を複数指定できるもの
PHPではプロパティ、関数の引数、戻り値で利用可能
異なる型は | を使って区切られる

だいたいの型はUnion型を利用できる
なんでもできるが、例えばintかstringを返す関数なんて作ってしまうとカオスになりそうな気配しかないので、使いどころは注意が必要

maburimaburi

PHP 8.0から利用可能になっているが、何気に使ったことなかったので一から学習してみる

maburimaburi

使用例

class Example {
    private int|string $val1;

    public function __construct(int|string $val1) {
        $this->val1 = $val1;
    }

    public function doSomething(int| string $val2): int|string {
        // do something
    }
}

$example1 = new Example(1);   // OK
$example2 = new Example("test"); // OK
$example3 = new Example([]); // NG

$example1->doSomething(1);  // OK
$example1->doSomething("test");  // OK
$example1->doSomething([]);  // NG
maburimaburi

Union型で利用できる型

  • bool
  • int
  • float
  • string
  • array
  • object
  • callable
  • iterable
  • Object
  • interface

Union型で利用できない型

  • void
  • mixed
  • null許容型(?stringなど)
このスクラップは2024/01/04にクローズされました