<?php
mb_internal_encoding('utf-8');

$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
// Другие варианты для тестов
// $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
// $text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
 
/* Делает первую букву предложения заглавной и ставим точку вконце */
function makeFirstletterUppercase($text) {
    
    $text = preg_replace ('([.,?!;])', '', $text);  // убираем пунктуацию
    $sf = mb_strtoupper(mb_substr($text, 0, 1));    // делаем первую букву предложения заглавной
    $text = $sf . mb_substr($text, 1) . ".";        // добавляем точку в конце предложения
    return $text;
}
    
// Функция замены порядка слов в $строке
function reverseWordOrder($str) {        
    
    $wordArroy = preg_split ('/\\s/u', $str, -1, PREG_SPLIT_NO_EMPTY); // разбиваем $строку на $масив_слов
    $wordArroy = array_reverse($wordArroy);                            // меняем слова местами в $масив_слов
     
    foreach ($wordArroy as $word) {                                    // склеиваем $слова в $строку
        if (!$resultStr) {
            $resultStr = mb_strtolower($word);                
        } else {
            $resultStr .= " " . mb_strtolower($word);             
        }
    }
return $resultStr; // возвращаем $строку
}
 
// Просили не менять имена переменных, главная функция 
function makeYodaStyleText($text) {    
    
    $strArroyResult = array();                  // $новый_массив_строк 
    $strArroy = preg_split ('/([.?!]\\s)/u', $text, -1, PREG_SPLIT_NO_EMPTY); // разбить $текст на $строки -> $массив_строк 
    
    foreach ($strArroy as $str) {               // перебираем $массив_строк        
        $str = reverseWordOrder($str);          // отправляем каждую $строку в функция замены порядка слов
        $str = makeFirstletterUppercase($str);  // отправляем каждую $строку в функция заглавную букву
        if (!$resultText) {                     // склеиваем строки в $финальный_текст
            $resultText = ($str);                
            } else {
                $resultText .= " " . ($str);             
        }        
    }
return $resultText;
}
 
$yodaText = makeYodaStyleText($text);
echo "Йода говорит: {$yodaText}\n";

?>