New PHP syntax reference

We briefly review the major new PHP language syntax introduced in each version since 5.3 – the version that birthed the features that paved the way for the prevailing PHP renaissance.

Always Every project.
Common Most projects.
Uncommon Some projects.
Rare Almost never.

Features are ordered by how frequently you are likely to use them from a practical programming perspective according to the table.

If a feature does not appear in this reference it is because it is not syntax or is a minor modification of existing syntax.

New in PHP 5.3

Released June 30th, 2009.

Feature Examples Frequency
Namespaces namespace Foo;
namespace { $global; }
Always
Closures $callable = function($x, $y) use ($local) {}; Common
Ternary shorthand $this ?: $that; Common
Late static binding static::overrideMe(); Common
Nowdoc <<<'SQL' SELECT injection, proof FROM $table; SQL; Uncommon
Jump labels goto hell; Rare

New in PHP 5.4

Released March 1st, 2012.

Feature Examples Frequency
Short array syntax ['foo'] Always
Class member access on instantiation (new Class)->member(); Common
Traits trait Foo extends Bar {} class Fubar { use Foo; } Uncommon
Function array dereferencing $foo->toArray()[0]; Uncommon
Binary number format 0b10100111001 Rare

New in PHP 5.5

Released June 20th, 2013.

Feature Examples Frequency
Class name resolution Foo::class Common
Generators yield $x; Common
Finally try { $h = fopen('foo'); } finally { fclose($h); } Common
Nested array unpacking foreach ([[1], [2]] as list($n)) {} Rare
Array and string literal dereferencing [1, 2][$x]; '1234'[$x]; Rare

New in PHP 5.6

Projected release date Q3 2014.

Feature Examples Frequency
Argument unpacking (splat) parse(...$argv); Common
Constant scalar expressions const TWO = 1 + 1; Common
Variadic functions function(...$params) {} Uncommon
Exponentiation operator 2 ** 10 Uncommon
Use function and use const use function Name\Space\f; use const Name\Space\FOO; Rare

References

  1. http://php.net/manual/en/migration53.new-features.php
  2. http://php.net/manual/en/migration54.new-features.php
  3. http://php.net/manual/en/migration55.new-features.php
  4. http://php.net/manual/en/migration56.new-features.php