/** * Use the `ValueType::NUMERIC_AS_INTEGER` flag to allow any numeric value * * @param int $value * @param int $flag A flag used by the `ValueType::getType()` method * @throws \ReflectionException if the parameter is not an integer */ public function __construct($value, $flag = ValueType::MODE_STRICT) { if (!ValueType::isInteger($value, $flag)) { throw new \ReflectionException(sprintf(__METHOD__ . ' expects parameter one to be integer, %s given', gettype($value))); } $this->setReadOnlyProperties($this::$_read_only); $this->type = ValueType::TYPE_INTEGER; $this->value = (int) $value; }