Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:5194 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 69926 invoked by uid 1010); 5 Nov 2003 08:50:46 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 69552 invoked from network); 5 Nov 2003 08:50:23 -0000 Received: from unknown (HELO mail.zend.com) (192.117.235.230) by pb1.pair.com with SMTP; 5 Nov 2003 08:50:23 -0000 Received: (qmail 4919 invoked from network); 5 Nov 2003 08:49:56 -0000 Received: from guardian.zend.office (HELO andi-laptop.zend.com) (10.1.1.4) by mail.zend.com with SMTP; 5 Nov 2003 08:49:56 -0000 Message-ID: <5.1.0.14.2.20031105104654.0341a970@127.0.0.1> X-Sender: andi@127.0.0.1 X-Mailer: QUALCOMM Windows Eudora Version 5.1 Date: Wed, 05 Nov 2003 10:49:55 +0200 To: Christian Schneider ,internals@lists.php.net In-Reply-To: <20031104233306.34859.qmail@pb1.pair.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Subject: Re: [PHP-DEV] Proposal: Array syntax From: andi@zend.com (Andi Gutmans) References: <20031104233306.34859.qmail@pb1.pair.com> Hi Christian, Personally I don't like having two ways of doing things. It makes it harder for people to read scripts. However, I think the proposed syntax is significantly more elegant than today's array() which makes me think twice about the idea and possibly making an exception to the rule. I think it'll improve the look of PHP scripts. Also I think people calling methods using call_user_method([$obj, "method"]); will find it sexier than the array() syntax. I guess I think it'd be interesting to see what other's think. Also, another point to check is if list() can also be converted into [] because having a hybrid wouldn't be too nice. Andi At 12:33 AM 11/5/2003 +0100, Christian Schneider wrote: >I propose to add an alternative (backward compatible) short array creation >syntax: >$a = [ 1, 2, 3 ]; and $a = [ 'a' => 42, 'b' => "foo" ]; > >It can also be used in function calls: >img(['src' => "logo.gif", 'alt' => "Logo"]); > >Reason behind this change: Arrays are used a lot and should therefore have >as little syntactic overhead as possible. And I think the short syntax is >also easier to read and write. > >A patch for the parser is trivial and is attached for Zend2. > >Note: I checked the newsgroup archive but couldn't find a discussion about >this. After not hearing back about my proposed enhancement to >debug_backtrace() and the dangling comma for function call parameters >being rejected I wonder if I'm using the right mailing list for this :-) > >- Chris > > >Index: Zend/zend_language_parser.y >=================================================================== >RCS file: /repository/ZendEngine2/zend_language_parser.y,v >retrieving revision 1.127 >diff -u -r1.127 zend_language_parser.y >--- Zend/zend_language_parser.y 19 Oct 2003 08:38:48 -0000 1.127 >+++ Zend/zend_language_parser.y 4 Nov 2003 23:32:12 -0000 >@@ -581,6 +581,7 @@ > | '@' { zend_do_begin_silence(&$1 TSRMLS_CC); } expr { > zend_do_end_silence(&$1 TSRMLS_CC); $$ = $3; } > | scalar { $$ = $1; } > | T_ARRAY '(' array_pair_list ')' { $$ = $3; } >+ | '[' array_pair_list ']' { $$ = $2; } > | '`' encaps_list '`' { zend_do_shell_exec(&$$, > &$2 TSRMLS_CC); } > | T_PRINT expr { zend_do_print(&$$, &$2 TSRMLS_CC); } > ; > >-- >PHP Internals - PHP Runtime Development Mailing List >To unsubscribe, visit: http://www.php.net/unsub.php