code: public static function parseIfValidate($v, ?string &$err = null)
      {
          $err = null;
          if (static::validate($v) === false) {
              $n = TryParse::toInt($v);
              $err = "unknown";
  
              if ($n === null) {
                  $err = "error.st.unexpected.type";
              } else {
                  if (static::validateIntValue($n) === false) {
                      $err = "error.st.value.out.of.range";
                  }
              }
          } else {
              $v = TryParse::toInt($v);
          }
          return $v;
      }
docs: Efetuará a conversão do valor indicado para o tipo que esta classe
  representa apenas se passar na validação.
  
  Caso não passe retornará um código que identifica o erro ocorrido
  na variável "$err".
  
  @param       mixed $v
  Valor que será convertido.
  
  @param       ?string $err
  Código do erro da validação.
  
  @return      mixed