我有以下代码,用于获取可变数量数组的交集。
$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时,交叉口工作得很好。
这看起来像是HHVM中的一个bug。我冒昧地为您提交了一份问题:https://github.com/facebook/hhvm/issues/5585你可以跟随那里了解更多更新。