"The input must contain only digits", self::STRING_EMPTY => "The input is an empty string", self::INVALID => "Invalid type given. String, integer or float expected", ]; /** * Returns true if and only if $value only contains digit characters * * @param string $value * @return bool */ public function isValid($value) { if (! is_string($value) && ! is_int($value) && ! is_float($value)) { $this->error(self::INVALID); return false; } $this->setValue((string) $value); if ('' === $this->getValue()) { $this->error(self::STRING_EMPTY); return false; } if (null === static::$filter) { static::$filter = new DigitsFilter(); } if ($this->getValue() !== static::$filter->filter($this->getValue())) { $this->error(self::NOT_DIGITS); return false; } return true; } }