3v4l.org

run code in 500+ PHP versions simultaneously
<?php class MyMorse { private array $plainTextsByMorseCode = [ '.-' => 'A', '....' => 'H', '.-..' => 'L', '-.' => 'N', '---' => 'O', '.--.' => 'P', '...' => 'S', '-' => 'T', '..-' => 'U', '-.--' => 'Y', ]; public function decode(string $morseCode): string { return preg_replace_callback( '/ ?(\S+)| {3}/', fn($m) => ctype_space($m[0]) ? ' ' : $this->plainTextsByMorseCode[$m[1]], $morseCode ); } } $obj = new MyMorse(); var_export( $obj->decode('-.-- --- ..- ... .... .- .-.. .-.. -. --- - .--. .- ... ...') );
Output for 8.1.0 - 8.1.34, 8.2.0 - 8.2.32, 8.3.0 - 8.3.32, 8.4.1 - 8.4.23, 8.5.0 - 8.5.8
'YOU SHALL NOT PASS'

preferences:
61.82 ms | 1028 KiB | 4 Q