Re: Coalesce assign operator (??=) implemented
| From: | Nikita Popov | Date: | Tue, 22 Jan 2019 16:39:44 +0000 |
| Subject: | Re: Coalesce assign operator (??=) implemented | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-103777@lists.php.net to get a copy of this message | ||
On Tue, Jan 22, 2019 at 4:51 PM Björn Larsson <bjorn.x.larsson@telia.com>
wrote:
> Hi,
>
> Excellent work! I have been waiting for this :)
>
> Sara, I came to think on the Short ternary Assignment Operator RFC.
> Would this implementation make that one more feasible, given it
> passes a vote?
>
From an implementation perspective ?:= is nearly identical to ??=, so
implementing it should be quite simple now. Whether an RFC for it would
pass is a different question, I'm not a big fan personally...
Nikita
> r//Björn Larsson
>
> Den 2019-01-22 kl. 11:33, skrev Nikita Popov:
>
> > Hi internals,
> >
> > Some time ago an RFC for the ??= operator has been accepted:
> > https://wiki.php.net/rfc/null_coalesce_equal_operator
> >
> > However, due to implementation difficulties, the RFC hasn't landed since
> > then. I'm happy to say that these difficulties are resolved now, and ??=
> > has landed with
> >
>
> https://github.com/php/php-src/commit/a50198d0fef652ca052cda642d6e98a9101eb73f
> > .
> >
> > To summarize the important ??= semantics: $a ??= $b is roughly equivalent
> > to $a ?? ($a = $b). In $a[foo()] ??= bar() the function foo() will be
> > evaluated exactly once, and bar() will be evaluated iff $a[foo()] is null
> > (or unset).
> >
> > Regards,
> > Nikita
> >
>