This is an old revision of the document!
Request for Comments: Short syntax for arrays
- Version: 0.5
- Date: 2008-27-05
- Author: Ryusuke Sekiyama <rsky0711 at gmail . com>, Sebastian Deutsch <sebastian.deutsch at 9elements . com>
- Status: Under Discussion
- First Published at: 2008-01-10
- Votes (+25/-19):
- Pro: Andrei Zmievski, Andi Gutmans, Alexey Zakhlestin, Brian Moon, Carl P. Corliss, Darius Jahandarie, Eric Coleman, Giedrius D, Kalle Sommer Nielsen, Larry Garfield, Max Antonov, Mike Ford, Pierre Joye, Rasmus Lerdorf, Ryusuke Sekiyama, Sam Barrow, Sebastian Deutsch, Stanislav Malyshev, Taylor Luk, Stefan Marr, Hans Ahlin, Karoly Negyesi, Edin Kadribasic, Guilherme Blanco, Jonathan-Bond Caron
- Contra: Antony Dovgal, David Coallier, Derick Rethans, Geoffrey Sneddon, Hannes Magnusson, Jani Taskinen, Lokrain, Tomi Kaistila, David Zühlke, Felipe Pena, Lukas Kahwe Smith, Richard Quadling, Maciek Sokolewicz, Marcus Boerger, Philip Olson, Ilia Alshanetsky, David Soria Parra, Daniel Brown, Jochem Maas
- Note: I added the names going through the internals list archive till mid 2007 - If I did something wrong, write me a mail - i will fix it immediately. If you're name is missing on this vote you can also drop me a note or simply edit this wiki page. (Sebastian)
This RFC will discuss an language enhancement for simple and easy array definition.
Another solution would be to implement named parameters.
Ryusuke suggested two possibly syntaxes and also provides two patches for a solution:
Square bracket array shortcut - keys and values are separated by colons:
$a = [1, 2, 3]; $b = ['foo': 'orange', 'bar': 'apple', 'baz': 'lemon'];
Square bracket array shortcut - keys and values are separated by double arrows:
$a = [1, 2, 3]; $b = ['foo' => 'orange', 'bar' => 'apple', 'baz' => 'lemon'];
Proposal and Patch
The first solution is more compact: http://www.opendogs.org/pub/php-5.3dev-080109-sbar.patch
The second solution is more “The PHP Way”: http://www.opendogs.org/pub/php-5.3dev-080109-sbar2.patch
Pro / Contra
Pro and contra arguments that were derived from the list.
- Good for framework development when dealing with long parameterlists
- Other web languages have similar syntax
- Yet another alias
- Would take distinctness from 
- Not searchable through search engines