What lives here
One page per major release, kept short on purpose: the single most important change first, then the rest in a few lines. Deep dives live on their own pages:
- PHP 5: the release that made PHP object-oriented — Zend Engine 2, exceptions, PDO.
- PHP 7: twice as fast, with scalar types — PHPNG speed, scalar and return types, catchable engine errors.
- PHP 8: JIT, attributes, match and named arguments — the overview; details in what is new in PHP 8.0 and what is new in PHP 8.5.
Thirty seconds of history
1995, PHP/FI — Rasmus Lerdorf's Personal Home Page tools:
C binaries, then a Perl layer, for hit counters and guestbooks.
1998, PHP 3 — Andi Gutmans and Zeev Suraski rewrite the core;
the Zend Engine ancestor makes PHP extensible, and the language
takes off.
2000, PHP 4 — the Zend Engine proper: sessions, output
buffering, superglobals ($_GET, $_POST), and a CLI
binary. Objects exist but are copies, not references.
2004, PHP 5 — Zend Engine 2: real OOP (visibility, interfaces,
abstract classes), exceptions, PDO, SimpleXML. Later 5.x adds
namespaces and closures (5.3) and traits (5.4).
PHP 6 — skipped: the Unicode-native attempt failed and was
abandoned; its non-Unicode parts shipped as PHP 5.3 and 5.4 instead.
2015, PHP 7 — the PHPNG engine roughly doubles speed; scalar
and return type declarations, ?? and <=>, and
engine errors become catchable Error throwables.
2020, PHP 8 — JIT, named arguments, attributes, match,
union types, constructor promotion, nullsafe operator. The 8.x line
continues in the detailed articles above.