/** * @param stdClass|null $value */ public function __construct(stdClass $value = null) { if (null === $value) { $value = new stdClass(); } foreach (get_object_vars($value) as $property => $subValue) { if (!is_string($property)) { throw new Exception\InvalidKeyException($property); } $this->valueTypeCheck($subValue); } parent::__construct($value); }
/** * @param array<integer,mixed>|null $value */ public function __construct(array $value = null) { if (null === $value) { $value = array(); } $expectedIndex = 0; foreach ($value as $index => $subValue) { if ($index !== $expectedIndex++) { throw new Exception\NonSequentialException(array_keys($value)); } $this->valueTypeCheck($subValue); } parent::__construct($value); }
/** * @param DateTime $value */ public function __construct(DateTime $value) { parent::__construct($value); }