Php 更新集合中的对象

Php 更新集合中的对象,php,class,oop,Php,Class,Oop,我正在使用一个集合类来存储“players”的对象。现在在我的下注课上,我想更新其中一个玩家的积分。。但我想我只是在我的收藏中更新了一次。我不太确定如何与全局集合对象通信。这是我的密码 Index.php我正在创建一个新的PlayerCollection并将其传递给我的解析器类 $app->get('/', function () use ($twig) { try { $players = new PlayerCollection(); $mat

我正在使用一个集合类来存储“players”的对象。现在在我的下注课上,我想更新其中一个玩家的积分。。但我想我只是在我的收藏中更新了一次。我不太确定如何与全局集合对象通信。这是我的密码

Index.php我正在创建一个新的PlayerCollection并将其传递给我的解析器类

$app->get('/', function () use ($twig) {

    try {
        $players = new PlayerCollection();
        $matchParser = new MatchParser($players);
        $matches = new MatchCollection($matchParser->parse('../data/data.json'));
    } catch(JsonException $e) {
        die($e->getMessage());
    }

    echo $twig->render('home.html', [
        'matches' => $matches->all(),
        'players' => $players
    ]);

});
解析器类我正在接受构造函数中的PlayerCollection,并使用以下代码在Bet类中设置Player对象

测试了this->players->find()功能,并从集合中返回正确的对象

打赌类

class Bet {

    private $player;
    private $teamHome;
    private $teamAway;
    private $scoreHome;
    private $scoreAway;


    public function getPoints($scoreHome, $scoreAway)
    {
        if($scoreHome == $scoreAway ) {
            $this->player->setPoints(100);
        }
    }
}
我调用函数来计算我的小树枝模板中的分数

{{ bet.getPoints(match.getHomeScore(), match.getAwayScore()) }}
当我在我的打赌课上呼出玩家的分数时,它起作用了。。但是我的PlayerCollection在index.php页面上没有更新

它可能是我的模板?我要更新的值已经由twig放置,只是在稍后的模板中,我调用该方法来更新先前但已放置的变量
知道我做错了什么吗?谢谢大家!

创建新的
Bet()
对象时,您将一个玩家对象的现有实例复制到了Bet对象中,因此不会更改原始对象


以前在这里的代码没有意义,哦

谢谢你的回答,解析器实际上解析了不同的内容,然后是播放器。还有其他方法吗?看,您的Bet类中的player属性是PlayerCollection对象中的player的副本您只是在Bet类中向该玩家添加点数。这对Parser object中的实际player对象没有影响。我应该在点数增加后用新的player更新原始集合吗?这缺少了一些东西。我试过这个,它似乎像预期的那样工作。不管怎样,理论上来说。谢谢你的时间,也许索引会覆盖新创建的索引,我会添加代码。我更新了index.php代码,你可以看到我将$players传递到我的小树枝视图。。也许这不是我的正确行为?
{{ bet.getPoints(match.getHomeScore(), match.getAwayScore()) }}