IsoCodes\Luhn::check PHP Method

check() public static method

public static check ( string $luhn, integer $length, boolean $unDecorate = true, array $hyphens = [] ) : boolean
$luhn string
$length integer
$unDecorate boolean
$hyphens array
return boolean
    public static function check($luhn, $length, $unDecorate = true, $hyphens = [])
    {
        $luhn = $unDecorate ? self::unDecorate($luhn, $hyphens) : $luhn;
        if (strlen($luhn) != $length) {
            return false;
        }
        $expr = sprintf('/\\d{%d}/i', $length);
        if (!preg_match($expr, $luhn)) {
            return false;
        }
        $check = 0;
        for ($i = 0; $i < $length; $i += 2) {
            if ($length % 2 == 0) {
                $check += 3 * (int) substr($luhn, $i, 1);
                $check += (int) substr($luhn, $i + 1, 1);
            } else {
                $check += (int) substr($luhn, $i, 1);
                $check += 3 * (int) substr($luhn, $i + 1, 1);
            }
        }
        return $check % 10 == 0;
    }