gpt4 book ai didi

php - 检测 PHP 中数组的更改

转载 作者:行者123 更新时间:2023-12-02 04:42:50 25 4
gpt4 key购买 nike

我一直在使用具有 protected 属性的 __set 魔术方法来监视更改,以便我的类知道它们是否有要保存的内容。有什么方法可以监视数组类型属性的更改吗?我知道通常您通过引用访问数组,而像 array_push 这样的函数不会触发 __set 方法,它们将使用对数组的引用。

我想要的基本上是这样的:

class Skill{ public $Player, $Name, $Level;}
class Player {
protected $Name, /*Other properties*/, $Skills /*Array*/
}

然后我对 Player 中的所有属性进行跟踪,以告诉我持久性是否需要更新。 (技能也有这个功能,但这显示了基本示例)。另外,我想强制它们保持同步(这是一种双向关系)。

有没有什么方法可以做到这一点,让它表现得像一个数组(如果我不需要的话,不想通过创建一个类来同步它们)。

最佳答案

您可以扩展 ArrayObject和代理追加:

class Skills extends ArrayObject
{
public function append($value)
{
// track changes
parent::append($value);
}
}

关于php - 检测 PHP 中数组的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20464157/

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