Есть код ниже но он не работает ошибка Fatal error: Uncaught Error: Call to a member function foreach() on null на 77 строке
Diary.php:
class Diary
{
public array $days = []; // Список дней
/**
* Конструктор объекта
* В качестве параметра нужно передавать информацию, получаемую от метода REST API "rest/diary"
*
* @param array $info - массив информации о журнале
*/
public function __construct (array $info)
{
$this->days = array_map (fn ($day) => new Day ($day), $info['days'] ?? []);
}
/**
* Проход по дням недели
*
* @param callable $callable - коллбэк для вызова
*
* @return Diary
*/
public function foreach (callable $callable): Diary
{
foreach ($this->days as $day)
$callable ($day);
return $this;
}
}
index.php:
$diary->foreach (function ($day) //77 строка
{
echo 'Дата: '. $day->date . PHP_EOL;
echo 'Уроки:'. PHP_EOL . PHP_EOL;
$i = 0;
$day->foreach (function ($lesson) use (&$i)
{
echo ++$i .') '. $lesson->discipline . PHP_EOL;
$space = str_repeat (' ', strlen ($i) + 2);
echo $space .'Время: '. $lesson->begin_time .' - '. $lesson->end_time . PHP_EOL;
echo $space .'Кабинет: '. $lesson->room . PHP_EOL;
echo $space .'Учитель: '. $lesson->teacher . PHP_EOL;
echo $space .'Тема: '. $lesson->subject . PHP_EOL;
echo PHP_EOL;
});
echo PHP_EOL;
});