假设我具有功能
public function test($dataid){
.........
}
现在我只想在$dataid
必须是数组时才运行函数。如果不是,那将是行不通的
ifi传递了一个字符串,例如test("string")
,它将无法运行。
我知道is_array()
,但是还有其他解决方法吗?
如果值为空,它将自动转换为数组
答案 0 :(得分:3)
您可以使用PHP的type hinting
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
是一个数组,它将返回$arg
。
要将值转换为数组,您可以type cast:
(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
答案 1 :(得分:0)
类型提示将起作用,但是under version restrictions。
原始方法。
if(gettype($dataid) === 'array'){
// Do the needful here
}
仍然会非常可靠...
答案 2 :(得分:0)
这就是您想要的:
if (is_array($array) or ($array instanceof Traversable)) {
...
}