Трудности при обращении к свойству класса

Ребят, просьба помочь с решением такой задачки. Имеются классы player и tournament. Код ниже.

<?php

class Player {

    private $name;
    private $city;

    function __construct($name) {
        $this->name = $name;
    }

    function setCity($city) {
        $this->city = $city;
        return $this;
    }

}

class Tournament {

    private string $name;
    private $date;
    private array $players;

    public function __construct($name, $date = null) {
        $this->name = $name;
        $this->date = $date;
        if ($date === null) {
            $this->date = date('d.m.Y.', strtotime("+1day"));
        }
    }

    public function addPlayer($players) {
        $this->players[] = $players;
        return $this;
    }

Тут всё понятно. Дальше требуется разработать метод createPairs, который будет составлять пары участников. Условие следующее: один участник играет не больше одной встречи в день. Каждый должен сыграть с каждым. Понимаю, что нужно будет разработать цикл, но затруднение идёт даже в таком простом варианте:

  public function createPairs() {
        $players1 = $this->players;
        echo "{$this->name}, {$this->date}";
        echo '<br>';
        echo '<pre>';
        print_r($players1[0][0]);
        echo " - ";
        print_r($players1[0][1]);
    }

Не получается вывести на экран имя игрока. Ошибка: класс не может быть выведен как массив. Как с этим свойством класса работать? Заранее спасибо. Если примерно натолкнёте на то, каким должен быть цикл - будет совсем уже отлично :)

Работать это должно так:

$tournamentA
    ->addPlayer( (new Player("Player 1"))->setCity("Minsk") )
    ->addPlayer( (new Player("Player 2"))->setCity("Mogilev") )
    ->addPlayer( (new Player("Player 3"))->setCity("Vitebsk") )
    ->addPlayer( (new Player("Player 4"))->setCity("Gomel") );
$tournamentA->createPairs();

То есть $players1 - это массив из экземпляров класса player


Ответы (0 шт):