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;
Output for 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
L H D Z Z Y Y A B X

preferences:
177.54 ms | 407 KiB | 5 Q