{$property} = $value; return $this; } /** * @return array */ public function toArray(): array { $objectVars = get_object_vars($this); $array = []; foreach ($objectVars as $key => $value) { if ($key === 'context') { $key = '@context'; } $array[$key] = is_object($value) && is_subclass_of($value, self::class) ? $value->toArray() : $value; } // removes all NULL, FALSE and Empty Strings but leaves 0 (zero) values return array_filter($array, static function ($value): bool { return $value !== null && $value !== false && $value !== ''; }); } public function toJSON(): string | bool { return json_encode($this->toArray(), JSON_UNESCAPED_UNICODE); } }