Example #1
0
 /**
  * Defined by Postman_Zend_Validate_Interface
  *
  * Returns true if and only if $value is a valid integer
  *
  * @param  string|integer $value
  * @return boolean
  */
 public function isValid($value)
 {
     if (!is_string($value) && !is_int($value) && !is_float($value)) {
         $this->_error(self::INVALID);
         return false;
     }
     if (is_int($value)) {
         return true;
     }
     $this->_setValue($value);
     if ($this->_locale === null) {
         $locale = localeconv();
         $valueFiltered = str_replace($locale['decimal_point'], '.', $value);
         $valueFiltered = str_replace($locale['thousands_sep'], '', $valueFiltered);
         if (strval(intval($valueFiltered)) != $valueFiltered) {
             $this->_error(self::NOT_INT);
             return false;
         }
     } else {
         try {
             if (!Postman_Zend_Locale_Format::isInteger($value, array('locale' => $this->_locale))) {
                 $this->_error(self::NOT_INT);
                 return false;
             }
         } catch (Postman_Zend_Locale_Exception $e) {
             $this->_error(self::NOT_INT);
             return false;
         }
     }
     return true;
 }