Re: [RFC] Implicit isset() in Shorthand Ternary Operator
| From: | Christoph Becker | Date: | Tue, 16 Sep 2014 20:00:15 +0000 |
| Subject: | Re: [RFC] Implicit isset() in Shorthand Ternary Operator | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 12 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-77275@lists.php.net to get a copy of this message | ||
Andrea Faulds wrote:
> On 16 Sep 2014, at 19:38, Adam Harvey <aharvey@php.net> wrote:
>
>> On 16 September 2014 11:34, Andrea Faulds <ajf@ajf.me> wrote:
>>> By popular demand, I’ve changed the RFC to instead propose a ?? operator, after
>>> Nikita Popov generously donated a working ?? patch. In doing so, the RFC is renamed “Null Coalesce
>>> Operator”.
>>>
>>> Please read it: https://wiki.php.net/rfc/isset_ternary
>>
>> Love it! Kudos to you and Nikita.
+1
>> Is it possible to chain ?? operators; ie $value = $foo ?? $bar ?? 'default’?
>
> Yep:
>
> $ sapi/cli/php -r '$x = NULL; $y = NULL; $z = 3; var_dump($x ?? $y ?? $z);'
> int(3)
>
> $ sapi/cli/php -r '$x = ["yarr" => "meaningful_value"];
> var_dump($x["aharr"] ?? $x["waharr"] ?? $x["yarr"]);'
> string(16) "meaningful_value"
It might be good to add explicit information regarding the precedence
(according to the patch, between the ternary operator and ||) and the
associativity (according to the patch and the examples, right) to the RFC.
--
Christoph M. Becker