PHP 8 以前的Type Hinting,只支持使用一个具体的Type,比如:

function sample(array $data) {
var_dump($data);
}

这个功能鸡肋的一点是,有些地方接受参数类型可能有多个类型,或者支持传入null。

在7.1时解决了null的问题:

function sample(?array $data) {
var_dump($data);
}

但是仍然无法指定多个类型hint。

PHP 8 中总算支持了Union types,我们可以通过|来指定多个类型Hint了:

function sample(array|string|null $data) {
var_dump($data);
}