php - 验证传递给函数的参数是否不是数组
问题描述
假设我有功能
public function test($dataid){
.........
}
现在我只想在$dataid
必须是数组时运行函数。如果不是,它将无法正常工作
ifi 传递了一个字符串,例如test("string")
它不会运行。
我知道is_array()
,但还有其他解决方案吗?
如果值为空,它将自动转换为数组
解决方案
您可以使用 PHP 的类型提示
public function(array $arg){
....
}
但这不会将 转换$arg
为数组,您可以允许这样的NULL
值:
// PHP 7.1 and above
public function(?array $arg){
....
}
// Or set the default value to NULL
public function(array $arg = NULL){
....
}
或者简单地使用is_array($arg)
它将返回TRUE
if$arg
是一个数组。
为了将值转换为数组,您可以键入强制转换它:
(array) ''; // Gives an array with one element equal to ''
(array) NULL; // Gives an empty array
(array) 0; // Gives an array with one element equal to 0
推荐阅读
- dart - 如何在颤动中更改视频中的位置?
- docker - Scale 如何通过在主机中添加新容器来增加?
- codeigniter - 从一个控制器重定向到另一个
- python - 当我杀死python进程时,输出文件为空
- php - TypeError:“无法将字符串转换为 ByteString,因为索引 519 处的字符的值 8230 大于 255。”
- python - 对多索引熊猫系列中的重复行求和,并为缺失的类别插入零
- python - 如何在终端中修复“pyuic5:找不到命令”
- django-models - 如何过滤存储在 django char 字段中的日期
- c# - 基于令牌的身份验证:注册
- javascript - Vue.js在悬停时更改子组件的css样式