On Thu, Dec 5, 2024, at 18:12, Volodymyr Volynets wrote:
> Hi,
>
> I have a question in regards to the proposed PHP RFC: Records. For following snippet:
>
> record Result(bool $success, array $error, array $data);
> $result = &Result(false, [], []);
> $result->with(success: true)->*with(error: $error + ['Some error'])*->*with(data: $data + ['user_id' => 777]))*;
>
> Is this possible to append/merge to existing array properties? Like I am doing with error.
>
> Regards
> Volodymyr Volynets
Hello Volodymyr,
Assuming you mean $data and $error to be the record's $data and $error arrays respectively? In that case, it would have to be something like this:
$result = $result->with(
success: true,
error: $result->error + ['some error'],
data: $result->data + ['user_id' => 777],
);
This is akin to writing it with an array:
$result = ['success' => false, 'error' => [], 'data' => []];
$result = [
...$result,
'success' => true,
'error' => $result['error'] + ['some error'],
'data' => $result['data'] + ['user_id' => 777],
];
— Rob