在 PHP 中定义多个函数参数类型
是否可以将函数参数定义为多个可能的类型?例如,函数可以采用字符串或整数来完成某些操作。有没有可能以某种方式像这样定义它?
function something(int|string $token) {}
还是每个参数只支持一种类型?
(请注意,我知道我以后可以过滤输入,我只是喜欢输入我的参数)
是否可以将函数参数定义为多个可能的类型?例如,函数可以采用字符串或整数来完成某些操作。有没有可能以某种方式像这样定义它?
function something(int|string $token) {}
还是每个参数只支持一种类型?
(请注意,我知道我以后可以过滤输入,我只是喜欢输入我的参数)
联合类型终于在 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;
}
}
不,这是不可能的。
此外,PHP 5 中的类型提示现在仅适用于类和数组。http://php.net/manual/en/language.oop5.typehinting.php
class Foo
{
}
function something(Foo $Object){}