Table of Contents

PHP RFC: Revisit trailing commas in function arguments

Introduction

Arrays in PHP have long since supported trailing commas.

Trailing array commas

$foo = [
    'foo',
    'bar',
];

This makes for clean diffs and easy appending of new values in user-land.

Unfortunately, the argument list for function/method declarations and calls do not share the same luxury.

Declarations raise a parse error

// Parse error
function myFunc(
    $foo,
    $bar,
    ) {
  /* ... */
}

Calls raise a parse error

// Parse error
myFunc(
    $foo,
    $bar,
    );

Proposal

This RFC proposes allowing function/method declarations and calls to allow for trailing commas in order to:

  1. Offer a consistent API and match the existing array functionality.
  2. Make it easy to append new arguments in user-land.
  3. Have cleaner diffs (so only one line shows up as being modified when appending arguments instead of two).

Backward Incompatible Changes

This change would have no breaking changes.

Proposed PHP Version

PHP 7.1

Proposed Voting Choices

Project requires a 2/3 majority.

Patches and Tests

The original patch by Sara Golemon.