Re: [PHP-DEV] [RFC] Implicit isset() in Shorthand Ternary Operator

[email protected] (Christoph Becker)
Newsgroups php.internals
Message-ID <[email protected]>
Am 08.09.2014 15:58, schrieb Andrea Faulds:

> On 8 Sep 2014, at 13:04, Shashank Kumar <[email protected]>
> wrote:
> 
>> Rather than giving a new meaning to an old operator why not have a
>> different operator for this? .NET has a 'null coalescing' operator
>> for the same purpose which works out quite well in the given
>> situation and is non-ambiguous as well.
>> http://msdn.microsoft.com/en-us/library/ms173224.aspx
> 
> We could add such an operator, perhaps with the ?? syntax. However, I
> don’t really like the idea. It’s too similar to ?: so I don’t think
> it’d be accepted, and even if it was, I’m not sure we really need
> another operator. I’d much rather just make ?: do what, IMO, is the
> right thing and what it always should have done.

I'd rather had a shortcut for the following:

  isset($_GET['foo']) ? $_GET['foo'] : BAR

What the "Implicit isset() in Shorthand Ternary Operator" RFC proposes
is not equivalent (despite the RFC's name), consider e.g.

  $_GET['foo'] === ""
  $_GET['foo'] === "0"

Of course, it is not possible to change the ?: operator to work this way
for BC reasons, but a new operator such as ?? might make sense.

-- 
Christoph M. Becker
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.