<?php
function is_valid_luhn($number) {
settype($number, 'string');
$sumTable = array(
array(0,1,2,3,4,5,6,7,8,9),
array(0,2,4,6,8,1,3,5,7,9));
$sum = 0;
$flip = 0;
for ($i = strlen($number) - 1; $i >= 0; $i--) {
$sum += $sumTable[$flip++ & 0x1][$number[$i]];
}
return $sum % 10 === 0;
}
function validateLuhn(string $number): bool
{
$sum = 0;
$flag = 0;
for ($i = strlen($number) - 1; $i >= 0; $i--) {
$add = $flag++ & 1 ? $number[$i] * 2 : $number[$i];
$sum += $add > 9 ? $add - 9 : $add;
}
return $sum % 10 === 0;
}