有没有办法添加多个类型提示方法?例如,foo(param)必须接收字符串OR bar OR baz的实例.
所以我知道我可以在php7中做返回类型提示.我可以做一个对象返回提示:
function getUser($pdo, $username) : User
{
}
Run Code Online (Sandbox Code Playgroud)
其中User是要返回的对象.
但是,如果在SQL中找不到用户,则返回'false'而不是User对象给出:
未捕获的TypeError:UserFind :: findUser()的返回值必须是User的实例,返回布尔值
但是如果SQL无法找到用户怎么办?如果用户不存在,我怎么能返回一个布尔值false?在这种情况下,我应该忽略返回类型提示吗?
编辑:我看了另一个问题,"在PHP 7中可以为Nullable返回类型",虽然我的问题几乎相同,但我想通过询问是否有办法返回两种类型中的一种来扩展我的问题.例如,如果对象不存在,则返回一个对象或一个字符串?
是否可以将函数参数定义为多种可能的类型?例如,函数可以使用字符串或整数来完成某些操作.有可能以某种方式定义它吗?
function something(int|string $token) {}
Run Code Online (Sandbox Code Playgroud)
或者每个参数只支持一种类型?
(请注意,我知道我以后可以过滤输入,我只想输入我的参数)