我有以下代码可以在可变数量的数组上获得交集。
$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时,交叉路口工作正常。
答案 0 :(得分:3)
这看起来像是HHVM中的一个错误。我冒昧地为你提出了一个问题:https://github.com/facebook/hhvm/issues/5585你可以跟随那里进行更多更新。