protected function isValidLuhn(string $number = null): bool
	{
		settype($number, 'string');

		$sumTable = [
			[
				0,
				1,
				2,
				3,
				4,
				5,
				6,
				7,
				8,
				9,
			],
			[
				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;
	}
protected function isValidLuhn(string $number = null): bool
	{
		settype($number, 'string');

		$sumTable = [
			[
				0,
				1,
				2,
				3,
				4,
				5,
				6,
				7,
				8,
				9,
			],
			[
				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;
	}
protected function isValidLuhn ( string $ number = null ) : bool { settype ( $ number , 'string' ) ; $ sumTable = [ [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , ] , [ 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 ; }
Checks the given number to see if the number passing a Luhn check.

@param string $number

@return boolean
Checks the given number to see if the number passing a Luhn check .