value = $value; $this->settings = $settings; } public function __toString(): string { switch (gettype($this->value)) { case 'object': if ($this->value instanceof DateTime) { return new TimeType($this->value); } return $this->value->__toString(); case 'string': return '"' . $this->value . '"'; case 'boolean': return new BooleanType($this->value); case 'array': return new ArrayType($this->value, $this->settings); default: return (string)$this->value; } } }