Skip to content

Implementation status

Timm Friebe edited this page Dec 7, 2024 · 55 revisions

The following table gives an overview of the current implementation status. The goal is to have check marks everywhere!

Feature PHP 7.4 PHP 8.0 PHP 8.1 PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
Future PHP?
Nullable casting
Match without expression
fn with block
Hack
Using statement / Disposables
Function types ✔(1) ✔(1) ✔(1) ✔(1) ✔(1) ✔(1) ✔(1)
Array and map types ✔(1) ✔(1) ✔(1) ✔(1) ✔(1) ✔(1) ✔(1)
PHP 8.5
Support Closures in constant expressions
PHP 8.4
Asymmetric visibility ✔(6) ✔(6) ✔(6) ✔(6) ✔(6) native native
new ... without parentheses
Property hooks ✔(6) ✔(6) ✔(6) ✔(6) ✔(6) native native
PHP 8.3
Typed class constants ✔(1) ✔(1) ✔(1) ✔(1) native native native
Marking overridden methods native native native
Dynamic class constant fetch native native native
Arbitrary static variable initializers native native native
PHP 8.2
True type ✔(5) ✔(5) ✔(5) native native native native
False type ✔(5) ✔(5) ✔(5) native native native native
Null type ✔(1) ✔(1) ✔(1) native native native native
Readonly classes native native native native
PHP 8.1
Array unpacking with string keys native native native native native
Readonly properties native native native native native
Pure intersection types ✔(1) ✔(1) native native native native native
First-class callable syntax native native native native native
Never return type ✔(4) ✔(4) native native native native native
New in initializers ✔(3) ✔(3) ✔(3) ✔(3) ✔(3) ✔(3) ✔(3)
Enumerations native native native native native
Octal integer literal notation native native native native native
PHP 8.0
Static return type native native native native native native
Match expression native native native native native native
Named Arguments ✔(2) native native native native native native
Mixed type ✔(1) native native native native native native
Attributes / Annotations
Null-safe instance operator native native native native native native
Constructor argument promotion native native native native native native
Throw expressions native native native native native native
::class on objects native native native native native native
Union types ✔(1) native native native native native native
Arbitrary expression support for new native native native native native native
PHP 7.4
Spread Operator in Array Expression native native native native native native native
Numeric Literal Separator native native native native native native native
Arrow functions native native native native native native native
Property types native native native native native native native

Notes:

  1. Currently unchecked.
  2. Only in the correct order.
  3. Except for class constants.
  4. Emitted as void.
  5. True and false types emitted as bool.
  6. Limited in inheritance due to being emulated, see xp-framework/compiler#166
Clone this wiki locally