【问题标题】:Can I overload an array subscript operator in PHP?我可以在 PHP 中重载数组下标运算符吗?
【发布时间】:2011-11-27 01:20:12
【问题描述】:

我有一个带有内部数组的类,我想重载下标运算符以访问内部数组并提供调试/日志记录操作。

是否有任何可能的方法来重载 PHP 中的 [] 运算符,或者在这种情况下我应该追求另一种选择吗?

【问题讨论】:

标签: php


【解决方案1】:

是的,使用ArrayAccess 接口。尽管您无法将对象转换为正确的数组。

但是,使用ArrayObject (as mentioned in the duplicate question) 你可以。另请参阅this comment on php.net,了解如何在扩展ArrayObject 时实现此目的。

【讨论】:

  • 如果你删除关于 ArrayObject 的部分,我会给你一个赞成票。这只是错误的方法。
  • @NikiC:嗯,我现在已经看到你对另一个答案的评论了;我听到你在说什么,但我不一定同意。我认为这取决于您正在寻找什么功能。所以我部分同意建议谨慎行事。
  • 你会推荐什么火眼男孩? :) 在选择是否还有其他选项之前,我喜欢先查看一些选项——尽管到目前为止这个选项看起来还不错。 :) +1。
  • @w00te:这真的取决于预期用途。你想达到什么目标?仅仅是下标重载,还是能够使用foreach() 迭代对象,也可以将对象转换为正确的array,等等?
  • 实际上我想出了如何使用它——我只需要再看几个例子。花了我一分钟的时间来了解 ArrayAccess 的做事方式——我太习惯于类 C 语言了:p 谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-14
  • 2010-10-21
  • 2021-10-22
  • 1970-01-01
相关资源
最近更新 更多