Hi

The problem i see when using array() (or list()) is that it nearly looks
like it is a function, but it isn't. Using [] instead would clearly
mark this difference.
array() and list() are special language constructs, why shouldn't they look a bit 
special?
This doesn't break backwards compatibility and it makes new code look
better and more readable.

Daniel Penning

Am Mittwoch, 5. November 2003 um 09:49 schrieben Sie:

AG> Hi Christian,

AG> Personally I don't like having two ways of doing things. It makes it harder 
AG> for people to read scripts.
AG> However, I think the proposed syntax is significantly more elegant than 
AG> today's array() which makes me think twice about the idea and possibly 
AG> making an exception to the rule. I think it'll improve the look of PHP 
AG> scripts. Also I think people calling methods using call_user_method([$obj, 
AG> "method"]); will find it sexier than the array() syntax.
AG> I guess I think it'd be interesting to see what other's think. Also, 
AG> another point to check is if list() can also be converted into [] because 
AG> having a hybrid wouldn't be too nice.

AG> Andi

AG> 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

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to