我无法想象我在这里做错了什么,但是当我尝试合并两个数组时,我得到Argument #2 is not an array
。参数#2肯定是一个数组,但PHP感觉不同。这是我能用代码获得的具体内容。从数据库中提取$bigKeys
和$littleKeys
,因此我不知道它们是否为空。所以我查一下!我有:
return array_merge(
$bigKeys ? $bigKeys : array(),
$littleKeys ? $littleKeys : array()
);
现在问题是,在我正在测试的情况下,$littleKeys
是NULL
,因此根据我在那里的三元组,它最终应该是一个空数组。
gettype($littleKeys ? $littleKeys : array()); // This returns "array"
那么世界上究竟发生了什么?
答案 0 :(得分:3)
我将代码更改为:
return array_merge(
is_array($bigKeys) ? $bigKeys : array(),
is_array($littleKeys) ? $littleKeys : array()
);
好像您的变量($bigKeys
或$littleKeys
)在示例中是一个字符串,true
或其他,它的计算结果为true。因此,您无法确定数组是否已传递给array_merge()
函数。这很可能也会解决你的问题(因为我不相信array_merge
函数中有一些疯狂的错误;)