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

Reply via email to