<?php

error_reporting(-1);
mb_internal_encoding('utf-8');

$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее";
$text1 = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
$text2 = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";

function makeUpperCase($str) {
	$firstLetterUpper = mb_strtoupper(mb_substr($str, 0, 1));
	$str = preg_replace('/^[а-яё]/u', $firstLetterUpper, $str);
	return $str;
}

function makeLowerCase($str) {
	$firstLetterLower = mb_strtolower(mb_substr($str, 0, 1));
	$str = preg_replace('/^[А-ЯЁ]/u', $firstLetterLower, $str);
	return $str;
}

function makeYodaStyleText($str) {
	$textSentences = [];
	$textSentences = preg_split('/(?<=[!.?][ ])/u', $str);
	$sentenceWords = [];
	foreach($textSentences as $keySentence => $sentence) {
		$textSentences[$keySentence] = makeLowerCase($textSentences[$keySentence]);
	}
	foreach($textSentences as $keySentence => $sentence) {
		$sentenceWords[$keySentence] = preg_split('/[,;]? |[.!?]/u' ,$sentence, -1, PREG_SPLIT_NO_EMPTY);
		$sentenceWords[$keySentence] = array_reverse($sentenceWords[$keySentence]);
		$textSentences[$keySentence] = implode(' ', $sentenceWords[$keySentence]);
		$textSentences[$keySentence] = makeUpperCase($textSentences[$keySentence]);
	}
	$result = implode('. ', $textSentences);
	$result = $result.".";
	return $result;
}

$yodaText = makeYodaStyleText($text);
$yodaText1 = makeYodaStyleText($text1);
$yodaText2 = makeYodaStyleText($text2);
echo "$yodaText\n$yodaText1\n$yodaText2";
