【发布时间】:2015-07-04 01:26:08
【问题描述】:
我有以下代码可以获取可变数量数组的交集。
$intersection = call_user_func_array('array_uintersect', $params);
使用测试数据,这非常有效。但是,当使用真实数据(这是一个更大的数据集,使用相同的代码,但在 hhvm 和 nginx 上运行时,比较三个或更多数组时出现以下错误:
Invalid operand type was used: array_uintersect expects array(s)
比较两个数组效果很好。
我检查了服务器上$params 的输出,它的值肯定是正确的。 $params 的所有元素都是数组,最后一个元素是一个数组,其值为:array_compare,这是我的自定义数组比较函数的名称。
什么可能导致这个错误?
更新:
我将 HHVM 更新到了最新的夜间版本,还升级了我的服务器内存,看看它是否有帮助。但是,它没有。
更新:
我现在意识到 Laravel Homestead 默认不使用hhvm,开启后:
sites:
- map: homestead.app
to: /home/vagrant/Code/project
hhvm: true
也使用我的测试数据重现了该错误。关闭 hhvm 时,交叉口完美运行。
【问题讨论】:
标签: php nginx laravel-5 hhvm array-intersect