2

可変量の配列で交差を取得する次のコードがあります。

$intersection = call_user_func_array('array_uintersect', $params);

テストデータを使用すると、これは非常にうまく機能します。ただし、実際のデータ (はるかに大きなデータ セットであり、同じコードを使用し、 と で実行している場合) を使用するとhhvm3 つ以上の配列を比較するとnginx次のエラーが発生します。

Invalid operand type was used: array_uintersect expects array(s)

2 つの配列を比較するとうまくいきます。

サーバーでの出力を確認しましたが$params、間違いなく正しい値です。のすべての要素$paramsは配列で、最後の要素は値を持つ配列です:array_compareこれは、カスタム配列比較関数の名前です。

このエラーの原因は何ですか?

アップデート:

HHVM を最新の夜間バージョンに更新し、サーバーのメモリもアップグレードして、それが役立つかどうかを確認しました。しかし、そうではありませんでした。

アップデート:

Laravel Homestead はデフォルトでは使用しないことに気付きhhvmました。オンにすると、次のようになります。

sites:
- map: homestead.app
  to: /home/vagrant/Code/project
  hhvm: true

私のテストデータでもエラーが再現されました。hhvm をオフにすると、交差は完全に機能します。

4

1 に答える 1

3

これは HHVM のバグのようです。私はあなたのために問題を提出する自由を取りました: https://github.com/facebook/hhvm/issues/5585より多くの更新のためにそこに従うことができます.

于 2015-07-04T07:23:26.970 に答える