Table of Contents

Request for Comments: Short syntax for arrays

2008 Votes

This RFC will discuss an language enhancement for simple and easy array definition.

Update: May 2011

This topic has come up again on the list.

Introduction

In some cases it is necessary that you have to pass function parameters as an array. Especially when you work with nested arrays the php array function tends to make the code looking ugly. If you take a look at other languages (Ruby, Python, Javascript) there is a short syntax for arrays using square brackets. Maybe PHP should adopt this behaviour to make code more readable and maintainable.

Another solution would be to implement named parameters.

Syntax

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.

Pro

Contra

Conclusion

This patch has been merged in PHP 5.4.0 and trunk.

Discussion on the List

  1. 2003-11-04 : Proposal: Array syntax
  2. 2008-01-11 : SUMMARY: Array syntax
  3. 2011-05-09 : 5.4 again