PHP 8 中的新特性 (四), Union types

程式技術
sharkHead

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!');

參考資料

sharkHead
written by
sharkHead

後端打工仔,在下班後喜歡研究各種不同的技術。稍微擅長 PHP,並偶爾涉獵前端開發。個性就像動態語言般隨興,但渴望做事能像囉嗦的靜態語言那樣嚴謹。

0 則留言