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

 

參考資料:
SPATIE - Front Line PHP
投票通過,PHP 8 確認引入 Union Types 2.0

sharkHead

PHP 與 Python 菜雞工程師,覺得前端有趣,但是無奈沒有慧根
目前沒有任何評論~