ArrayAccess
orを使用してオブジェクトを実装する場合ArrayObject
、一部の操作では完全に通常の配列になります (たとえば、foreach()
ステートメント)。しかし、そう簡単にはだまされず、オブジェクトだと不平を言う人もいます。
[E_WARNING] call_user_func_array() expects parameter 2 to be array, object given
これは矛盾していると思います。誰かがこの背後にある理由を説明できますか? これを回避する方法はありますか?
バックエンド コードをサポートするためにこれが必要です。配列が必要で (パラメーターとして に渡されますcall_user_func_array()
)、場合によってはそれを変更します。ただし、配列に加えられた変更を新しい変数にミラーリングする必要があるため、ArrayAccess
オブジェクトを介してそれを実行しようとしました (詳細はこちら)。