可変量の配列で交差を取得する次のコードがあります。
$intersection = call_user_func_array('array_uintersect', $params);
テストデータを使用すると、これは非常にうまく機能します。ただし、実際のデータ (はるかに大きなデータ セットであり、同じコードを使用し、 と で実行している場合) を使用するとhhvm
、3 つ以上の配列を比較すると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 をオフにすると、交差は完全に機能します。