首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArrayAccess接口在php中的用途是什么?

ArrayAccess接口在php中的用途是什么?
EN

Stack Overflow用户
提问于 2021-07-17 17:11:46
回答 1查看 110关注 0票数 1

ArrayAccess接口是

用于将访问对象作为数组提供。

就像文件上说的。但大多数数组函数都没有对其进行处理。此外,普通对象函数在这种转换中也有问题。那你的想法是什么。举个例子

实现此interface.

  • class的类对象不能调用'array_key_exists‘,除非新类也实现Iterator接口,否则不能调用’array_key_exists‘。不能通过引用ArrayAccess来分配

  • 。(您必须自己实现(这是一个自定义函数)。

  • 大部分函数是不工作于类的数组实现这个接口。

那么,如果没有明确的理由,我们为什么要让自己痛苦呢?

EN

回答 1

Stack Overflow用户

发布于 2021-07-17 17:29:32

其思想是允许您使用数组语法访问对象的属性。这通常非常方便,而且许多实用程序类都实现了它。例如,在Laravel中,雄辩的模型实现了它,集合也是如此。

这并不意味着实现该接口的对象可以作为参数传递给数组函数之一。但是,如果存储的数据是数组,那么在对象上实现类似的方法通常是有意义的--例如,Laravel集合实现了map()filter()这样的方法,这些方法可能在内部使用它们的数组对应物。使用这些方法通常会使代码更简洁、更容易理解,因为您可以将每一步都链接起来。JavaScript和Python之类的语言(数组是具有这类方法的对象)在历史上更擅长函数式编程,而使用类似Laravel集合而不是数组的语言也可以在PHP中实现这种编程风格。关于更多细节,我强烈推荐由Adam编写的“”一书。

在检查像PsySh这样的REPL中的对象时,它也很有用,因为您可以更容易地访问各个属性。实现Traversable也意味着您可以在检查数据时迭代它。您也可以键入这个接口,这样一个方法就可以接受任何实现它的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68422684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档