Robert Landers
Software Engineer
Utrecht NL

On Wed, Nov 29, 2023 at 9:36 AM Ayesh Karunaratne <ayesh@php.watch> wrote:
>
> >
> > try {
> >   // do stuff
> > } catch(Throwable $exception) {
> >   $this->logger->error("failed to do stuff", compact('exception'));
> >   throw $exception;
> > }
> >
>
> I wonder why not just create an array with the key...
>
> ```php
> try {
>    // do stuff
> } catch(Throwable $exception) {
>    $this->logger->error("failed to do stuff", ['exception' => $exception]));
>    throw $exception;
> }
> ```
>
> It's a few more characters of course, but I would pick the readability
> and simplicity over the potential typos (which the IDE should point
> out) and a few key presses it saves.I

Hey Ayesh,

Yeah, this is very much a personal preference kind of thing. I choose
compact not because it is shorter to type, but because typos are a
thing if you've been around PHP for awhile... who hasn't opened a
function written 15 years ago with a misspelled variable that you want
to fix but it has been that way for 15 years, so you don't fix it.

I've also used compact inside array_maps like:

$arr = array_map(function($a) {
  $name = $a['first'] . " " . $a['last'];
  // more mappings
  return compact('name', ...);
}, $arr);

just because it is easier to type/read than a bunch of array accesses.
Possibly faster as well, but if it is, it's by nano-seconds.

Robert Landers
Software Engineer
Utrecht NL

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to