3v4l.org

run code in 300+ 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('-.-- --- ..- ... .... .- .-.. .-.. -. --- - .--. .- ... ...') );

preferences:
69.72 ms | 406 KiB | 5 Q