Re: Proposal: Array syntax

From: Date: Wed, 05 Nov 2003 08:49:55 +0000
Subject: Re: Proposal: Array syntax
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-5194@lists.php.net to get a copy of this message
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


« previous php.internals (#5194) next »