ArrayAccess接口是
用于将访问对象作为数组提供。
就像文件上说的。但大多数数组函数都没有对其进行处理。此外,普通对象函数在这种转换中也有问题。那你的想法是什么。举个例子
实现此interface.
那么,如果没有明确的理由,我们为什么要让自己痛苦呢?
发布于 2021-07-17 17:29:32
其思想是允许您使用数组语法访问对象的属性。这通常非常方便,而且许多实用程序类都实现了它。例如,在Laravel中,雄辩的模型实现了它,集合也是如此。
这并不意味着实现该接口的对象可以作为参数传递给数组函数之一。但是,如果存储的数据是数组,那么在对象上实现类似的方法通常是有意义的--例如,Laravel集合实现了map()和filter()这样的方法,这些方法可能在内部使用它们的数组对应物。使用这些方法通常会使代码更简洁、更容易理解,因为您可以将每一步都链接起来。JavaScript和Python之类的语言(数组是具有这类方法的对象)在历史上更擅长函数式编程,而使用类似Laravel集合而不是数组的语言也可以在PHP中实现这种编程风格。关于更多细节,我强烈推荐由Adam编写的“”一书。
在检查像PsySh这样的REPL中的对象时,它也很有用,因为您可以更容易地访问各个属性。实现Traversable也意味着您可以在检查数据时迭代它。您也可以键入这个接口,这样一个方法就可以接受任何实现它的东西。
https://stackoverflow.com/questions/68422684
复制相似问题