【发布时间】:2012-10-19 21:22:39
【问题描述】:
当使用ArrayAccess 或ArrayObject 实现对象时,对于某些操作,它是一个完全正常的数组(例如foreach() 语句)。然而,其他人并不那么容易被愚弄,仍然抱怨它是一个对象:
[E_WARNING] call_user_func_array() expects parameter 2 to be array, object given
这让我觉得前后矛盾。有人可以解释这背后的原因吗?有没有解决的办法?
我需要它来支持后端代码。它需要一个数组(作为参数传递给call_user_func_array()),并且有时会修改它。但是,我需要将对数组所做的任何更改镜像到新变量,这就是为什么我尝试通过ArrayAccess 对象(更多信息here)来做到这一点。
【问题讨论】:
-
因过于本地化而关闭?强烈反对。
标签: php magic-methods arrayaccess