3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php function codiceFiscale($cf){ if($cf=='') return false; if(strlen($cf)!= 16) return false; $cf=strtoupper($cf); if(!preg_match("/[A-Z0-9]+$/", $cf)) return false; $s = 0; for($i=1; $i<=13; $i+=2){ $c=$cf[$i]; if('0'<=$c and $c<='9') $s+=ord($c)-ord('0'); else $s+=ord($c)-ord('A'); } for($i=0; $i<=14; $i+=2){ $c=$cf[$i]; switch($c){ case '0': $s += 1; break; case '1': $s += 0; break; case '2': $s += 5; break; case '3': $s += 7; break; case '4': $s += 9; break; case '5': $s += 13; break; case '6': $s += 15; break; case '7': $s += 17; break; case '8': $s += 19; break; case '9': $s += 21; break; case 'A': $s += 1; break; case 'B': $s += 0; break; case 'C': $s += 5; break; case 'D': $s += 7; break; case 'E': $s += 9; break; case 'F': $s += 13; break; case 'G': $s += 15; break; case 'H': $s += 17; break; case 'I': $s += 19; break; case 'J': $s += 21; break; case 'K': $s += 2; break; case 'L': $s += 4; break; case 'M': $s += 18; break; case 'N': $s += 20; break; case 'O': $s += 11; break; case 'P': $s += 3; break; case 'Q': $s += 6; break; case 'R': $s += 8; break; case 'S': $s += 12; break; case 'T': $s += 14; break; case 'U': $s += 16; break; case 'V': $s += 10; break; case 'W': $s += 22; break; case 'X': $s += 25; break; case 'Y': $s += 24; break; case 'Z': $s += 23; break; } } if( chr($s%26+ord('A'))!=$cf[15] ) return false; return true; } var_dump(codiceFiscale());
Output for 7.1.0 - 7.3.0rc3
Fatal error: Uncaught ArgumentCountError: Too few arguments to function codiceFiscale(), 0 passed in /in/gj9dd on line 71 and exactly 1 expected in /in/gj9dd:3 Stack trace: #0 /in/gj9dd(71): codiceFiscale() #1 {main} thrown in /in/gj9dd on line 3
Process exited with code 255.
Output for 5.6.0 - 5.6.30, 7.0.0 - 7.0.20
Warning: Missing argument 1 for codiceFiscale(), called in /in/gj9dd on line 71 and defined in /in/gj9dd on line 3 Notice: Undefined variable: cf in /in/gj9dd on line 4 bool(false)
Output for hhvm-3.12.14 - 3.17.3
Warning: codiceFiscale() expects exactly 1 parameter, 0 given in /in/gj9dd on line 4 Notice: Undefined variable: cf in /in/gj9dd on line 4 bool(false)