3v4l.org

run code in 300+ PHP versions simultaneously
<?php error_reporting(-1); mb_internal_encoding('utf-8'); // $text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!"; // Другие варианты для тестов $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила."; $text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей."; /* Делает первую букву предложения заглавной */ function makeFirstletterUppercase($text) { $text = mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1, null); return $text; } function makeYodaStyleText($text) { $text = mb_strtolower($text); // Переводим текст в нижний регистр $splitSentences = preg_split('/[!.?]/iu', $text, 0, PREG_SPLIT_NO_EMPTY); // Разбиваем текст на предложения $text = ''; foreach ($splitSentences as $sentence) { /* Разбиваем предложения на слова (1 предложение = 1 массив из слов) */ $words = preg_split('/\\s|[,:;]/iu', $sentence, 0, PREG_SPLIT_NO_EMPTY); /* Склеиваем слова в предложения, поменяв их обратном порядке, переводим первую букву в верхний регистр и обьдияем предложения в единый текст */ $text .= makeFirstletterUppercase(implode(array_reverse($words), ' ')) . '. '; } return $text; } $yodaText = makeYodaStyleText($text); echo "Йода говорит: {$yodaText}\n";
Output for 8.4.1 - 8.4.12
Fatal error: Uncaught TypeError: implode(): Argument #1 ($separator) must be of type string, array given in /in/nGbTu:29 Stack trace: #0 /in/nGbTu(29): implode(Array, ' ') #1 /in/nGbTu(34): makeYodaStyleText('') #2 {main} thrown in /in/nGbTu on line 29
Process exited with code 255.
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25
Fatal error: Uncaught TypeError: implode(): Argument #2 ($array) must be of type ?array, string given in /in/nGbTu:29 Stack trace: #0 /in/nGbTu(29): implode(Array, ' ') #1 /in/nGbTu(34): makeYodaStyleText('') #2 {main} thrown in /in/nGbTu on line 29
Process exited with code 255.
Output for 7.4.0 - 7.4.33
Deprecated: implode(): Passing glue string after array is deprecated. Swap the parameters in /in/nGbTu on line 29 Deprecated: implode(): Passing glue string after array is deprecated. Swap the parameters in /in/nGbTu on line 29 Йода говорит: Война гражданская идет. Империей галактической зловещей со схватке в победу первую одержали базы тайной с удар наносящие повстанцев корабли космические.
Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.6 - 7.2.33, 7.3.16 - 7.3.33
Йода говорит: Война гражданская идет. Империей галактической зловещей со схватке в победу первую одержали базы тайной с удар наносящие повстанцев корабли космические.

preferences:
141.02 ms | 412 KiB | 5 Q