|object|null */ private $data; private ?ActionError $error; /** * @param array|object|null $data */ public function __construct( int $statusCode = 200, $data = null, ?ActionError $error = null ) { $this->statusCode = $statusCode; $this->data = $data; $this->error = $error; } public function getStatusCode(): int { return $this->statusCode; } /** * @return array|null|object */ public function getData() { return $this->data; } public function getError(): ?ActionError { return $this->error; } /** * @return JsonSerializable|array */ #[\ReturnTypeWillChange] public function jsonSerialize(): JsonSerializable|array { if ($this->data instanceof JsonSerializable) { /** @var JsonSerializable|array $serialized */ $serialized = $this->data->jsonSerialize(); return $serialized; } $payload = [ 'statusCode' => $this->statusCode, ]; if ($this->data !== null) { $payload['data'] = $this->data; } if ($this->error !== null) { $payload['error'] = $this->error; } /** @var array */ return $payload; } }