Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:103774 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 84192 invoked from network); 22 Jan 2019 13:56:13 -0000 Received: from unknown (HELO mail-it1-f169.google.com) (209.85.166.169) by pb1.pair.com with SMTP; 22 Jan 2019 13:56:13 -0000 Received: by mail-it1-f169.google.com with SMTP id h65so19412588ith.3 for ; Tue, 22 Jan 2019 02:33:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=tn9n0AItRzm2EGbI6ChNAZ2qyUTgbg8dfc3DoXI8DC4=; b=uoVS+TBXZAEz91TgPdzBj2Fo9aH+YddcUTZ9dm/cfmqZA5OJ4zASyJdxvV0YNcc5kK BorH9MqGJnTbbSATPPMDMZUXNE02ebU4P6XKFUanjI4nRVmbpCJg7xS53VrBCckg3jzN npQdZUeUbtJi8eqQGPJfop//iWi9AF2coqMs04BH4IPbFTteZdHTeZm0R834btJvcbpj kTFvifVsJRedOJQ1NRZ47J4YjG4yTgTCRvI6xxJt+slDQgp1i4uqB4EBN4WVV+0mVwSf Sk4KyrnOvuaWIbBC6BFtKW5d1u9fANAqanC5ljzSw5uywmwmz+XHvNeg5Wl6yXj19vYM Bfrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=tn9n0AItRzm2EGbI6ChNAZ2qyUTgbg8dfc3DoXI8DC4=; b=HIc9Rm/t/EobDfiz42jMpPGLE07GF8OTmIlBzTR1jrk8I0I/Nvi3DBdgVZNpQT5nsR 8EchoaR9lciDd1vsNIKgFNXdIZt8fGMorcSBYbfZ6Q92M6RrdMErqD4RxiHKeCLvuoIG wA9tOfjZFN5i/v40KraAB549hKrDIiZNWp/bFncs2KycVlZLuqFK+mS72f2RnAK/IhTd 4e+r6KgQM5TBPE306pYtherCn/14CxxAxE9UiHwzlaTeTrKau3Ljypg7w8R3JrNiZKir 7q0fmoFkEH4wQXPxdI3O8Er/vg43Rd3+qDodoGrDHgiMF2Xy/9Wai7dA2ko9y3q3eCBf ShzA== X-Gm-Message-State: AHQUAua08tpbi3xij86nEIep24ZffUXEyBA6hYuTvAxHDvIZH0n+qNNL TL1KiXwSY/N/qFELcpZi4jOj8hy+vJQIIyPPRM5um4TJ X-Google-Smtp-Source: ALg8bN6vr280O8td8mj9sqYwdSnuNuwowTvCOqEtkW6X6sZIvO+xtsNgp/X/wqKVqpc4kvlZ/aZM6t4SDfXX0MdAYAs= X-Received: by 2002:a24:de87:: with SMTP id d129mr1765999itg.110.1548153229800; Tue, 22 Jan 2019 02:33:49 -0800 (PST) MIME-Version: 1.0 Date: Tue, 22 Jan 2019 11:33:35 +0100 Message-ID: To: PHP internals Content-Type: multipart/alternative; boundary="00000000000051faf1058009836a" Subject: Coalesce assign operator (??=) implemented From: nikita.ppv@gmail.com (Nikita Popov) --00000000000051faf1058009836a Content-Type: text/plain; charset="UTF-8" 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 --00000000000051faf1058009836a--