Re: Wired constant expression syntax and bug
| From: | Andrea Faulds | Date: | Mon, 30 Jun 2014 21:05:17 +0000 |
| Subject: | Re: Wired constant expression syntax and bug | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-75154@lists.php.net to get a copy of this message | ||
On 30 Jun 2014, at 20:06, Dmitry Stogov <dmitry@zend.com> wrote:
> Hi Bob,
>
> I'm wondered why you introduced this wired syntax in PHP-5.6.
Do you mean weird?
>
> class FooBar {
> const bar = ["bar" => 3]["bar"];
> }
>
> It wasn't a part of RFC, it wasn't covered by tests, and it actually
> doesn't make a lot of sense. May be it's better to remove it?
I disagree, it makes perfect sense:
class FooBar {
const FOO = 3;
const BAR = [
3 => ‘qux’,
4 => ‘bang’,
7 => ‘theta’,
9 => ‘epsilon’
][FOO];
}
?: and ? only work when there are just two possibilities.
It is surprising that it wasn’t in the RFC though, I suspect that was just an oversight on Bob’s
part.
--
Andrea Faulds
http://ajf.me/