php 可以有混合类型提示吗?

Can php have a mixed type hinting?

假设我的函数想要同时接受字符串和整数。如果它是字符串,我之后将其转换为 int。

喜欢

function func(int|string $a) {
    echo is_string($a)?intval($a)+1:$a+1;
}

func(1344);
func('1344');

您要求的功能正处于提案阶段。参见 PHP RFC: Union Types

更新

Mixed 类型最终被接受并在 2020 年 11 月发布的 PHP 8 中引入。

联合类型 RFC 已被接受并为 PHP 8 实施。

混合类型 RFC 正在投票中,但在撰写此答案时可能会通过。

PHP 8.0 接受了混合:https://wiki.php.net/rfc/mixed_type_v2

class B
{
    public function foo(mixed $value) {}
}