Зачем использовать callback функции?
Крайне хорошее описание по таким вещам есть в Википедии. А теперь к примерам:1. Передача параметром
Такие функции удобно передавать параметром/возвращать из других функций. Тут лучше углубиться в тему: Функция высшего порядка
Например для удобной передачи асбтрактной функциональности, которая будет применяться например к каждому члену итератора/массива. Это используется например в таких стандартных функциях array_{map/filter/reduce}. В коллбеке то, что будет применяться к каждому члену массива.
Вообще функции высшего порядка не просто "пример использовани", а даже целая концепция программирования.2. Отложенный/ленивый вызов
Например в PHP приложениях используется в роутерах/контейнере/логере, да много где. Суть в том, что в соллбеке спрятана функциональность, иногда очень большая. Элементов и этих фукцниональности тоже может быть много, а нужно все зарегистрировать. Чтобы не плодить тысячи объектов при регистрации — каждый кусочек функциональности заворачивают в коллбек, и только при вызове (например роута), вызывается коллбек и соответственно все, что в нем начинает работать.class Container
{
     private $callableServices;

     public function add(string $serviceName, callable $service)
     {
          $this->callableServices[$serviceName] = $service;
     }

     public function get(string $serviceName)
     {
          $service = $this->callableServices[$serviceName];

          return $service();
     }
}

$container = new Container();
// объект тут не создается, тк он внутри функции, которая не вызывается
$container->add('a', function() {
     return new FirstBigService();
});
// объект тут не создается, тк он внутри функции, которая не вызывается
$container->add('b', function() {
     return new SecondBigService();
});

// Внутри метода get() идет не просто доставание нужного элемента, 
// а еще и его вызов (тк лежат функции), то есть именно сейчас 
// произойдет new FirstBigService()
$service = $container->get('a');3. Изоляция контекста// тут левый код
...

// Код ниже работает изолировано и на него ничего не может подействоват,
// т.к. внутри свой контекст
(function() {
    $app = new Application();
    $app->run();
});
это не callback.
https://www.php.net/manual/ru/language.types.calla...