PHP的SPL:涉及数组的接口是否涵盖所有数组属性?

Wil*_*lco 6 php arrays spl

通过实现所有必要的SPL接口,是否可以编写一个几乎与实际PHP数组无法区分的类?他们是否遗漏了任何关键的东西?

我想构建一个更高级的Array对象,但我想确保如果我用自定义Array类替换它们,我不会破坏现有的使用数组的应用程序.

Bob*_*ger 7

我能想到的唯一问题是gettype()和is_array()函数.检查您的代码

gettype($FakeArray) == 'array' 
is_array($FakeArray)
Run Code Online (Sandbox Code Playgroud)

因为虽然您可以像对象一样使用对象,但仍然会将其标识为对象.

  • 即便如此,看起来我可以使用override_function()函数来覆盖这些函数以解决其他情况. (2认同)