参数#2不是数组

时间:2014-01-28 20:29:37

标签: php

我无法想象我在这里做错了什么,但是当我尝试合并两个数组时,我得到Argument #2 is not an array。参数#2肯定是一个数组,但PHP感觉不同。这是我能用代码获得的具体内容。从数据库中提取$bigKeys$littleKeys,因此我不知道它们是否为空。所以我查一下!我有:

return array_merge(
  $bigKeys ? $bigKeys : array(),
  $littleKeys ? $littleKeys : array()
);

现在问题是,在我正在测试的情况下,$littleKeysNULL,因此根据我在那里的三元组,它最终应该是一个空数组。

gettype($littleKeys ? $littleKeys : array()); // This returns "array"

那么世界上究竟发生了什么?

1 个答案:

答案 0 :(得分:3)

我将代码更改为:

return array_merge(
    is_array($bigKeys) ? $bigKeys : array(),
    is_array($littleKeys) ? $littleKeys : array()
);

好像您的变量($bigKeys$littleKeys)在示例中是一个字符串,true或其他,它的计算结果为true。因此,您无法确定数组是否已传递给array_merge()函数。这很可能也会解决你的问题(因为我不相信array_merge函数中有一些疯狂的错误;)