在 PHP 中定义多个函数参数类型

2022-08-30 23:06:49

是否可以将函数参数定义为多个可能的类型?例如,函数可以采用字符串或整数来完成某些操作。有没有可能以某种方式像这样定义它?

    function something(int|string $token) {}

还是每个参数只支持一种类型?

(请注意,我知道我以后可以过滤输入,我只是喜欢输入我的参数)


答案 1

2020年更新:

联合类型终于在 PHP 8.0 中实现,该版本将于 2020 年底发布。

它们可以像这样使用:

class Number {
    private int|float $number;

    public function setNumber(int|float $number): void {
        $this->number = $number;
    }

    public function getNumber(): int|float {
        return $this->number;
    }
}

答案 2

不,这是不可能的。

此外,PHP 5 中的类型提示现在仅适用于类和数组。http://php.net/manual/en/language.oop5.typehinting.php

class Foo
{
}

function something(Foo $Object){}

推荐