/** * Extending classes may define their own constructor and call this one first * * @param mixed $value * @param int $flag A flag used by the `ValueType::getType()` method */ public function __construct($value, $flag = ValueType::MODE_STRICT) { $this->setReadOnlyProperties($this::$_read_only); $this->value = $value; $this->type = ValueType::getType($value); }