3v4l.org

run code in 300+ PHP versions simultaneously
<?php function getNewLetter($letter, $number) { $number = $number % 26; $new_ascii_value = ord($letter) + $number; if($new_ascii_value < 65){ $number = abs($number) - (ord($letter) - 65); return chr(91 - $number); }else if($new_ascii_value >= 91){ return chr(64 + ($new_ascii_value - 90)); } return chr($new_ascii_value); } echo getNewLetter("H", 4),PHP_EOL; echo getNewLetter("H", 26),PHP_EOL; echo getNewLetter("H", -4),PHP_EOL; echo getNewLetter("A", -1),PHP_EOL; echo getNewLetter("A", -27),PHP_EOL; echo getNewLetter("A", -2),PHP_EOL; echo getNewLetter("B", -3),PHP_EOL; echo getNewLetter("X", 3),PHP_EOL; echo getNewLetter("Y", 3),PHP_EOL; echo getNewLetter("E", -7),PHP_EOL;

preferences:
27.45 ms | 406 KiB | 5 Q