<?php
class Team
{
    private $index = 0;
    private $teams = [];
    
    public function add($team)
    {
        $this->teams[] = $team;
    }

    public function getTeam()
    {
       return $this->teams[$this->index++] ?? null;
     }
}


$team = new Team;
$team->add('T1');
$team->add('T2');
$team->add('T3');
$team->add('T4');
$team->add('T5');
$team->add('T6');
$team->add('T7');
$team->add('T8');
$team->add('T9');
$team->add('T10');

while (($teamName = $team->getTeam())) {
    echo $teamName . "<br />";
}


echo "<hr />";


/*

-------------------------

*/


class Team2
{
    private $index = 0;
    private $teams = [];

    public function add($team)
    {
        $this->teams[] = $team;
    }

    public function getTeams()
    {
        foreach ($this->teams as $index => $t) {
            yield $t;
        }
    }
}

$team = new Team2;
$team->add('T1');
$team->add('T2');
$team->add('T3');
$team->add('T4');
$team->add('T5');
$team->add('T6');
$team->add('T7');
$team->add('T8');
$team->add('T9');
$team->add('T10');

$teamGenerator = $team->getTeams();

$teamName = $teamGenerator->current();
echo $teamName . "<br />";
$teamGenerator->next();

$teamName = $teamGenerator->current();
echo $teamName . "<br />";
$teamGenerator->next();