PHP 8 中的新特性 (四), Union types
Union type,聯合類型。
在介紹 Union types 之前,建議可以先看之前部落格上寫的一篇文章 PHP 的 Type Declarations (類型宣告)。因為今天所說的 Union types 與類型宣告有很大的關係。
Union types 簡單來說,就是在宣告變數類型時,可以使用複數個。
<?php
// 參數 $something 的類型可以為 string 或是 array
public function dumpSomething(string|array $something)
{
var_dump($something);
}
echoSomething('hello world!');
echoSomething(['hello world!']);
也可以宣告成類別。
<?php
class MyClass {}
// 參數 $something 的類型可以為 string 或是 array 或是 class 類別
public function dumpSomething(string|array|MyClass $something)
{
var_dump($something);
}
echoSomething(new MyClass);
返回值的類型也可以使用 Union types。
<?php
// 返回值的類型也可以做 Union types
public function dumpSomething(string|array $something): string|bool|int
{
var_dump($something);
}
echoSomething('hello world!');