Closed5
PHPのUnion型について学習メモ
知りたいこと
- PHPのUnion型についての概要
まとめ
他のUnion型を採用している言語と同じく、 型宣言を複数指定できるもの
PHPではプロパティ、関数の引数、戻り値で利用可能
異なる型は | を使って区切られる
だいたいの型はUnion型を利用できる
なんでもできるが、例えばintかstringを返す関数なんて作ってしまうとカオスになりそうな気配しかないので、使いどころは注意が必要
PHP 8.0から利用可能になっているが、何気に使ったことなかったので一から学習してみる
使用例
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
Union型で利用できる型
- bool
- int
- float
- string
- array
- object
- callable
- iterable
- Object
- interface
Union型で利用できない型
- void
- mixed
- null許容型(?stringなど)
メリットデメリットについて整理
このスクラップは2024/01/04にクローズされました