当实现使用对象ArrayAccess
或ArrayObject
,一些操作这是一个完全正常的阵列(例如一foreach()
语句)。 然而,其他人都没有这么容易上当,却还在抱怨它是一个对象:
[E_WARNING] call_user_func_array() expects parameter 2 to be array, object given
这令我incosistent。 一个人能解释这背后的原因何在呢? 有没有解决的办法?
我需要这种支持后端代码。 它需要一个阵列(作为一个参数传递给call_user_func_array()
有时修改它。 我需要镜像到阵列不过新的变量所做的任何更改,所以这就是为什么我试图通过做ArrayAccess
对象(更多信息在这里 )。