Re: [PHP-DEV] [RFC] Implicit isset() in Shorthand Ternary Operator
[email protected] (Andrey Andreev)
| Newsgroups | php.internals |
|---|---|
| Message-ID | <CAPhkiZxjRr4vFO_f-2pjMcwUSnQaNwYKRh5CKuTOOzJZox_f6w@mail.gmail.com> |
On Tue, Sep 9, 2014 at 3:07 AM, Andrea Faulds <[email protected]> wrote: > > On 8 Sep 2014, at 23:58, Adam Harvey <[email protected]> wrote: > >> +1 on ?? — there's precedent for it, and it means we don't have to >> explain why the shorthand form of an operator behaves differently to >> the long form, which is just going to confuse users. > > FWIW, it already behaves differently: > > oa-res-27-90:~ ajf$ php -r 'function foo() { echo "foo\n"; return true; } $x = foo() ?: false;' > foo > oa-res-27-90:~ ajf$ php -r 'function foo() { echo "foo\n"; return true; } $x = foo() ? foo() : false;' > foo > foo That's arguable ... I'd say that ($x = foo()) ? $x : false; is the logical equivalent of your first example. Cheers, Andrey.