【发布时间】:2010-11-30 04:16:49
【问题描述】:
经过一些研究,我最终找到了一个我很快就会在这里提出的问题的答案;如何通过 PHP 中的 __get 和 __set 魔术方法处理数组?每当我尝试使用 $object->foo['bar'] = 42; 之类的东西设置值时,它似乎都会默默地丢弃它。
无论如何,答案很简单; __get 方法只需要通过引用返回。并且在它前面扔了一个 & 符号后,果然成功了。
我的问题实际上是为什么?我似乎无法理解为什么这是有效的。 __get 按引用返回对 __set 处理多维数组有何影响?
编辑:顺便说一下,运行 PHP 5.3.1
【问题讨论】:
-
似乎在 PHP 5.2.x 中使 __get 返回引用没有帮助。
标签: php overloading getter-setter magic-methods