3v4l.org

run code in 300+ PHP versions simultaneously
<?php error_reporting(-1); mb_internal_encoding('utf-8'); //$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!"; // Другие варианты для тестов //$text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила."; $text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей."; /* Делает первую букву предложения заглавной */ function makeFirstletterUppercase($text) { $second = 1; $first = mb_substr($text, 0, $second); //проверяем, чтобы первый символ был не пробелом{ if ($first == ' '){ $second = 2; $first = mb_substr($text, 0, $second); } //} $other = mb_substr($text, $second); $first = mb_strtoupper($first); $text = $first . $other; return $text; } function makeYodaStyleText($text) { //разбили текст на предложения и записали в массив { $regexp = '/[\\.\\?\\!]/ui'; $parts = preg_split($regexp, $text, 0, PREG_SPLIT_NO_EMPTY); //} $text = ""; //регулярка для разбива на отдельные слова { $regexp = '/[,;]* /ui'; //} foreach ($parts as $part){ //делаем все буквы в предложении маленькими и бъем по словам { $part = mb_strtolower($part); $words = preg_split($regexp, $part, 0, PREG_SPLIT_NO_EMPTY); //} //var_dump($words); $words = array_reverse($words); //var_dump($words); $string = implode(" ", $words); $string = $string . ". "; $text = $text . makeFirstletterUppercase($string); } return $text; } $yodaText = makeYodaStyleText($text); echo "Йода говорит: {$yodaText}\n";

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.4.120.0050.00520.77
8.4.110.0060.01122.47
8.4.100.0150.00718.06
8.4.90.0120.00918.64
8.4.80.0050.00318.09
8.4.70.0120.00818.18
8.4.60.0080.01218.99
8.4.50.0060.00320.45
8.4.40.0120.00919.54
8.4.30.0040.00420.79
8.4.20.0100.01019.59
8.4.10.0070.00419.83
8.3.250.0110.00818.89
8.3.240.0100.00817.32
8.3.230.0040.00516.87
8.3.220.0120.00618.88
8.3.210.0040.00416.77
8.3.200.0090.01016.99
8.3.190.0090.01117.13
8.3.180.0120.00716.88
8.3.170.0060.01319.11
8.3.160.0120.00619.04
8.3.150.0130.00916.85
8.3.140.0040.00419.29
8.3.130.0040.00418.65
8.3.120.0080.00020.63
8.3.110.0030.01316.91
8.3.100.0060.00318.59
8.3.90.0080.00026.77
8.3.80.0030.00618.40
8.3.70.0040.01118.53
8.3.60.0110.00716.88
8.3.50.0130.00521.27
8.3.40.0090.00618.95
8.3.30.0000.01518.96
8.3.20.0030.00620.29
8.3.10.0000.00820.33
8.3.00.0080.00023.69
8.2.290.0050.00620.59
8.2.280.0120.00718.38
8.2.270.0100.01016.90
8.2.260.0120.00318.52
8.2.250.0040.00416.81
8.2.240.0090.00917.61
8.2.230.0030.00720.94
8.2.220.0080.00424.06
8.2.210.0100.01026.77
8.2.200.0060.00318.41
8.2.190.0110.00716.88
8.2.180.0140.00316.63
8.2.170.0070.01022.96
8.2.160.0130.00020.36
8.2.150.0060.00324.18
8.2.140.0050.00324.66
8.2.130.0050.00326.16
8.2.120.0000.00821.13
8.2.110.0030.00722.38
8.2.100.0080.00417.95
8.2.90.0000.00819.40
8.2.80.0080.00017.97
8.2.70.0030.00517.75
8.2.60.0050.00317.75
8.2.50.0000.00817.80
8.2.40.0040.00418.05
8.2.30.0090.00019.37
8.2.20.0040.00418.24
8.2.10.0050.00318.25
8.2.00.0000.00818.48
8.1.330.0100.00821.90
8.1.320.0100.00916.20
8.1.310.0070.01116.52
8.1.300.0030.00520.07
8.1.290.0070.00730.84
8.1.280.0140.00425.92
8.1.270.0090.00022.11
8.1.260.0000.00826.35
8.1.250.0080.00028.09
8.1.240.0100.00022.15
8.1.230.0070.00319.27
8.1.220.0000.00818.02
8.1.210.0030.00518.77
8.1.200.0060.00317.60
8.1.190.0040.00417.60
8.1.180.0000.00818.10
8.1.170.0040.00418.03
8.1.160.0040.00419.18
8.1.150.0040.00419.07
8.1.140.0000.00819.77
8.1.130.0080.00019.18
8.1.120.0000.00717.59
8.1.110.0030.00517.67
8.1.100.0040.00417.64
8.1.90.0080.00017.60
8.1.80.0040.00417.70
8.1.70.0080.00017.72
8.1.60.0000.00817.72
8.1.50.0070.00417.73
8.1.40.0060.00317.76
8.1.30.0030.00517.80
8.1.20.0000.00817.82
8.1.10.0040.00417.68
8.1.00.0030.00517.56
8.0.300.0000.00718.77
8.0.290.0090.00017.13
8.0.280.0000.00718.57
8.0.270.0040.00417.42
8.0.260.0040.00417.32
8.0.250.0020.00517.26
8.0.240.0000.00917.23
8.0.230.0000.00817.18
8.0.220.0050.00217.35
8.0.210.0080.00017.17
8.0.200.0000.00717.32
8.0.190.0000.00817.29
8.0.180.0000.00817.19
8.0.170.0090.00017.24
8.0.160.0040.00417.23
8.0.150.0070.00017.18
8.0.140.0040.00417.13
8.0.130.0000.00513.68
8.0.120.0000.00817.13
8.0.110.0050.00217.33
8.0.100.0040.00417.25
8.0.90.0000.00717.13
8.0.80.0100.00517.26
8.0.70.0000.00717.32
8.0.60.0050.00317.13
8.0.50.0040.00417.14
8.0.30.0130.00717.37
8.0.20.0100.00817.49
8.0.10.0040.00417.16
8.0.00.0140.00617.13
7.4.330.0000.00515.55
7.4.320.0030.00316.77
7.4.300.0000.00616.89
7.4.290.0030.00716.77
7.4.280.0060.00316.72
7.4.270.0030.00316.85
7.4.260.0030.00616.94
7.4.250.0070.00016.83
7.4.240.0040.00417.04
7.4.230.0070.00016.77
7.4.220.0120.01216.89
7.4.210.0070.01416.83
7.4.200.0000.00716.77
7.4.160.0060.01116.91
7.4.150.0170.00017.40
7.4.140.0130.00717.86
7.4.130.0120.00516.94
7.4.120.0100.01016.95
7.4.110.0100.00716.80
7.4.100.0110.00617.02
7.4.90.0120.00416.75
7.4.80.0100.00719.39
7.4.70.0040.01316.76
7.4.60.0100.00716.88
7.4.50.0040.01116.67
7.4.40.0140.00917.04
7.4.30.0080.00816.85
7.4.00.0150.00015.36
7.3.330.0030.00313.69
7.3.320.0030.00313.66
7.3.310.0070.00016.57
7.3.300.0030.00316.76
7.3.290.0110.00416.71
7.3.280.0080.00816.71
7.3.270.0160.00617.40
7.3.260.0080.01216.80
7.3.250.0100.00716.69
7.3.240.0100.00716.69
7.3.230.0120.00616.89
7.3.210.0060.01016.78
7.3.200.0160.00016.71
7.3.190.0180.00016.86
7.3.180.0080.01116.88
7.3.170.0030.01516.74
7.3.160.0090.00616.88
7.2.330.0110.00717.00
7.2.320.0090.00916.95
7.2.310.0140.00616.91
7.2.300.0070.01117.04
7.2.290.0110.00916.71
7.2.60.0040.00816.99
7.2.50.0050.00517.18
7.1.200.0000.00715.71
7.1.70.0000.00717.35
7.1.60.0040.00817.35
7.1.30.4830.04736.50
7.1.20.4700.06036.48
7.1.10.4400.06720.41
7.1.00.3730.05720.55
7.0.200.0060.00917.11
7.0.170.4500.07320.04
7.0.160.5170.05320.03
7.0.150.4070.06720.10
7.0.140.4100.05320.11
7.0.130.3200.05320.16
7.0.120.3300.05720.20
7.0.110.3700.06020.05
7.0.100.4100.05319.99
7.0.90.3900.07720.01
7.0.80.3770.07719.98
7.0.70.3670.06720.01
7.0.60.3470.06020.13
7.0.50.2700.06019.96
7.0.40.2530.05720.20
7.0.30.2500.05720.19
7.0.20.2530.05720.03
7.0.10.2770.05719.98
7.0.00.3070.06020.04

preferences:
123.54 ms | 403 KiB | 5 Q