3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Get luhn checksum * * @param $str_string * @param $int_base * @return string */ function get_luhn_checksum($str_string, $int_base) { $arr_chars = array_reverse(str_split($str_string)); $int_check_sum = 0; foreach ($arr_chars AS $int_index=>$str_char) { $int_adjustment = ((int)base_convert($str_char, $int_base, 10)) * ($int_index % 2 ? 1 : 2); $int_check_sum += $int_adjustment; echo "char $int_index is $str_char adjustment is +$int_adjustment running checksum is $int_check_sum\n"; } echo "Final checksum is $int_check_sum modded = " . ($int_check_sum % $int_base) . "\n"; return strtoupper(base_convert($int_base - ($int_check_sum % $int_base), 10, $int_base)); } $str = get_luhn_checksum('0B022412500000009104', 16); echo $str;
Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.7 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
char 0 is 4 adjustment is +8 running checksum is 8 char 1 is 0 adjustment is +0 running checksum is 8 char 2 is 1 adjustment is +2 running checksum is 10 char 3 is 9 adjustment is +9 running checksum is 19 char 4 is 0 adjustment is +0 running checksum is 19 char 5 is 0 adjustment is +0 running checksum is 19 char 6 is 0 adjustment is +0 running checksum is 19 char 7 is 0 adjustment is +0 running checksum is 19 char 8 is 0 adjustment is +0 running checksum is 19 char 9 is 0 adjustment is +0 running checksum is 19 char 10 is 0 adjustment is +0 running checksum is 19 char 11 is 5 adjustment is +5 running checksum is 24 char 12 is 2 adjustment is +4 running checksum is 28 char 13 is 1 adjustment is +1 running checksum is 29 char 14 is 4 adjustment is +8 running checksum is 37 char 15 is 2 adjustment is +2 running checksum is 39 char 16 is 2 adjustment is +4 running checksum is 43 char 17 is 0 adjustment is +0 running checksum is 43 char 18 is B adjustment is +22 running checksum is 65 char 19 is 0 adjustment is +0 running checksum is 65 Final checksum is 65 modded = 1 F
Output for 4.4.5 - 4.4.9
Fatal error: Call to undefined function: str_split() in /in/TKO5D on line 11
Process exited with code 255.
Output for 4.3.2 - 4.3.11, 4.4.0 - 4.4.4
Fatal error: Call to undefined function: str_split() in /in/TKO5D on line 11
Process exited with code 255.
Output for 4.3.0 - 4.3.1
Fatal error: Call to undefined function: str_split() in /in/TKO5D on line 11

preferences:
217.2 ms | 401 KiB | 314 Q