PHP 从 5.6 版本开始就具有可变参数解包功能。
function doSomething(User ...$users) {
return count($users);
}
$userOrNoUserList = [$user1, null, $user2];
doSomething(...$userOrNoUserList); // wanted: 3
Run Code Online (Sandbox Code Playgroud)
这会引发以下错误:
可捕获的致命错误:传递给 doSomething() 的参数 2 必须是 user 的实例,给定为 null
但我想保留里面的列表结构doSomething();我不想null在调用之前过滤值。是否也可以允许null值?
小智 5
您必须使用类型之前的字符定义可为空类型(在 PHP 7.1.0 中可用):?User
function doSomething(?User ...$users) {
return count($users);
}
Run Code Online (Sandbox Code Playgroud)
然后你可以打电话:
$userOrNoUserList = [$user1, null, $user3];
doSomething(...$userOrNoUserList); // 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
695 次 |
| 最近记录: |