Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:5186 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 34887 invoked by uid 1010); 4 Nov 2003 23:33:06 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 34860 invoked by uid 1007); 4 Nov 2003 23:33:06 -0000 Message-ID: <20031104233306.34859.qmail@pb1.pair.com> To: internals@lists.php.net Date: Wed, 05 Nov 2003 00:33:05 +0100 User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031009 X-Accept-Language: de-ch, en-us, en MIME-Version: 1.0 X-Enigmail-Version: 0.76.7.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: multipart/mixed; boundary="------------000102040006030200070405" X-Posted-By: 195.226.4.61 Subject: Proposal: Array syntax From: cschneid@cschneid.com (Christian Schneider) --------------000102040006030200070405 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit 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 --------------000102040006030200070405 Content-Type: text/plain; name="short_array_syntax.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="short_array_syntax.patch" 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); } ; --------------000102040006030200070405--