Coalesce assign operator (??=) implemented

php.internals

Nikita Popov

7 years ago
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

Björn Larsson

7 years ago
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? r//Björn Larsson Den 2019-01-22 kl. 11:33, skrev Nikita Popov:

Nikita Popov

7 years ago
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