使用ArrayAccess
or实现对象时ArrayObject
,对于某些操作,它是一个完全正常的数组(例如foreach()
语句)。然而,其他人并不那么容易被愚弄,并且仍然抱怨它是一个对象:
[E_WARNING] call_user_func_array() expects parameter 2 to be array, object given
这让我觉得前后矛盾。有人可以解释这背后的原因吗?有没有解决的办法?
我需要它来支持后端代码。它需要一个数组(作为参数传递给call_user_func_array()
),并且有时会修改它。但是,我需要将对数组所做的任何更改镜像到新变量,这就是为什么我尝试通过ArrayAccess
对象来执行此操作(更多信息here)。