Трудности при обращении к свойству класса
Ребят, просьба помочь с решением такой задачки. Имеются классы 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