首页 > 解决方案 > 验证传递给函数的参数是否不是数组

问题描述

假设我有功能

public function test($dataid){
    .........   
}

现在我只想在$dataid必须是数组时运行函数。如果不是,它将无法正常工作

ifi 传递了一个字符串,例如test("string")它不会运行。

我知道is_array(),但还有其他解决方案吗?

如果值为空,它将自动转换为数组

标签: phpfunctionoop

解决方案


您可以使用 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)它将返回TRUEif$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

推荐阅读