public static function validate($cif)
    {
        $cifCodes = 'JABCDEFGHI';

        if (9 !== strlen($cif)) {
            return false;
        }
        $cif = strtoupper(trim($cif));
        $sum = (string) Nif::getCifSum($cif);

        $n = (10 - substr($sum, -1)) % 10;

        if (preg_match('/^[ABCDEFGHJKNPQRSUVW]{1}/', $cif)) {
            if (in_array($cif[0], array('A', 'B', 'E', 'H'))) {
                // Numerico
                return $cif[8] == $n;
            } elseif (in_array($cif[0], array('K', 'P', 'Q', 'S'))) {
                // Letras
                return $cif[8] == $cifCodes[$n];
            } else {
                // Alfanumérico
                if (is_numeric($cif[8])) {
                    return $cif[8] == $n;
                } else {
                    return $cif[8] == $cifCodes[$n];
                }
            }
        }

        return false;
    }
public static function validate($cif)
    {
        $cifCodes = 'JABCDEFGHI';

        if (9 !== strlen($cif)) {
            return false;
        }
        $cif = strtoupper(trim($cif));
        $sum = (string) Nif::getCifSum($cif);

        $n = (10 - substr($sum, -1)) % 10;

        if (preg_match('/^[ABCDEFGHJKNPQRSUVW]{1}/', $cif)) {
            if (in_array($cif[0], array('A', 'B', 'E', 'H'))) {
                // Numerico
                return $cif[8] == $n;
            } elseif (in_array($cif[0], array('K', 'P', 'Q', 'S'))) {
                // Letras
                return $cif[8] == $cifCodes[$n];
            } else {
                // Alfanumérico
                if (is_numeric($cif[8])) {
                    return $cif[8] == $n;
                } else {
                    return $cif[8] == $cifCodes[$n];
                }
            }
        }

        return false;
    }
public static function validate ( $ cif ) { $ cifCodes = 'JABCDEFGHI' ; if ( 9 !== strlen ( $ cif ) ) { return false ; } $ cif = strtoupper ( trim ( $ cif ) ) ; $ sum = ( string ) Nif :: getCifSum ( $ cif ) ; $ n = ( 10 - substr ( $ sum , - 1 ) ) % 10 ; if ( preg_match ( '/^[ABCDEFGHJKNPQRSUVW]{1}/' , $ cif ) ) { if ( in_array ( $ cif [ 0 ] , array ( 'A' , 'B' , 'E' , 'H' ) ) ) { // Numerico return $ cif [ 8 ] == $ n ; } elseif ( in_array ( $ cif [ 0 ] , array ( 'K' , 'P' , 'Q' , 'S' ) ) ) { // Letras return $ cif [ 8 ] == $ cifCodes [ $ n ] ; } else { // Alfanumérico if ( is_numeric ( $ cif [ 8 ] ) ) { return $ cif [ 8 ] == $ n ; } else { return $ cif [ 8 ] == $ cifCodes [ $ n ] ; } } } return false ; }
CIF validation.

@param string $cif The CIF

@return bool
CIF validation .