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
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:
Hi internals,
Some time ago an RFC for the ??= operator has been accepted:
https://wiki.php.net/rfc/null_coalesce_equal_operatorHowever, 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
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_operatorHowever, 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 withhttps://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