gpt4 book ai didi

php - 将 __set 与数组一起使用已解决,但为什么呢?

转载 作者:可可西里 更新时间:2023-11-01 13:48:32 25 4
gpt4 key购买 nike

经过一些研究,我最终找到了一个我很快就会在这里问的问题的答案;您如何通过 PHP 中的 __get__set 魔术方法处理数组?每当我尝试使用类似 $object->foo['bar'] = 42; 的东西设置一个值时,它似乎会默默地丢弃它。

无论如何,答案很简单; __get 方法只需要通过引用返回。在它前面扔一个 & 符号后,果然它起作用了。

其实我的问题是,为什么?我似乎无法理解为什么这是有效的。 __get 通过引用返回如何影响 __set 使用多维数组?

编辑:顺便说一下,运行 PHP 5.3.1

最佳答案

在 PHP 中,当您从函数返回一个值时,您可以认为它复制了该值(除非它是一个类)。在 __get 的情况下,除非您返回要编辑的实际内容,否则所有更改都会对一个副本进行,然后该副本将被丢弃。

关于php - 将 __set 与数组一起使用已解决,但为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4310473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com