<?php

$tests = [
  [
    "inicio" => "07:00:00", 
    "final"  => "09:00:00",
    "busca"  => "08:00:00",
    "saida"  => true
  ],[
    "inicio" => "19:00:00", 
    "final"  => "22:00:00",
    "busca"  => "23:00:00",
    "saida"  => false
  ],[
    "inicio" => "18:00:00", 
    "final"  => "03:00:00",
    "busca"  => "01:00:00",
    "saida"  => true
  ],
];

foreach($tests as $test)
{
  $ininio = new DateTime($test["inicio"]);
  $final  = new DateTime($test["final"]);
  $busca  = new DateTime($test["busca"]);
  
  if ($final <= $ininio) {
    $final->add(new DateInterval("P1D"));
  }
  
  if ($busca <= $ininio) {
    $busca->add(new DateInterval("P1D"));
  }
  
  if ($busca >= $ininio && $busca <= $final) {
    echo "Sim";
  } else {
    echo "Não";
  }
  
  echo ", esperado " . ($test["saida"] ? "sim" : "não") . PHP_EOL;
}