Version | Active Support Ends | Security Support Ends |
---|---|---|
8.2 | ||
8.3 | ||
8.4 |
Name | Links | 8.2 | 8.3 | 8.4 |
---|---|---|---|---|
Add attribute #[SensitiveParameter] |
RFC | Y | Y | Y |
Deprecate dynamic properties; add #[AllowDynamicProperties] attribute |
RFC | Y | Y | Y |
enum reads in const expressions | RFC | Y | Y | Y |
standalone true type |
RFC | Y | Y | Y |
standalone null and false types |
RFC | Y | Y | Y |
Disjunctive Normal Form types - (A&B)|C |
RFC | Y | Y | Y |
constants in traits | RFC | Y | Y | Y |
readonly classes |
RFC | Y | Y | Y |
Add #[Override] attribute |
RFC | Y | Y | |
Arbitrary static variable initializers | RFC | Y | Y | |
Make unserialize() emit a warning for trailing data |
RFC | Y | Y | |
Dynamic class constant fetch | RFC | Y | Y | |
Improve unserialize() error handling | RFC | Y | Y | |
Updating readonly properties during clone | RFC | Y | Y | |
Typed class cosntants | RFC | Y | Y | |
Deprecate remains of string evaluated code assertions | RFC | Y | Y | |
Add mb_str_pad function |
RFC | Y | Y | |
Warn on invalid operations with array_sum and array_product |
RFC | Y | Y | |
Warn or error for undefined range() usage |
RFC | Y | Y | |
Additions to Random\Randomizer ; add Random\IntervalBoundary |
RFC | Y | Y | |
DateException and DateError |
RFC | Y | Y | |
Add json_validate function |
RFC | Y | Y | |
Use exceptions by default in SQLite3 extension | RFC | Y | Y | |
Make GMP final |
RFC | Y | ||
More ext-dom features |
RFC | Y | ||
Stream opening functions for XML classes | RFC | Y | ||
PDO driver-specific parsers | RFC | Y | ||
Add array_find function |
RFC | Y | ||
Deprecate 0 ** -x |
RFC | Y | ||
Unbundle imap , pspell , and oci8 extensions |
RFC | Y | ||
Add StreamBucket class |
RFC | Y | ||
Opt-in DOM spec compliance | RFC | Y | ||
Improve callbacks in ext-dom and ext-xsl |
RFC | Y | ||
Native PDO driver-specific subclasses |
RFC | Y | ||
New constants for round modes |
RFC | Y | ||
Add mb_trim , mb_ltrim , and mb_rtrim functions |
RFC | Y | ||
Raise BCrypt default cost from 10 to 12 | RFC | Y | ||
Add XML_OPTION_PARSE_HUGE |
RFC | Y | ||
New JIT internals | RFC | Y | ||
HTML5 DOM parsing and serialization | RFC | Y | ||
Change JIT default INI values | RFC | Y | ||
Add request_parse_body function (RFC1867 for non-POST verbs) |
RFC | Y | ||
Add http_get_last_response_headers and http_clear_last_response_headers functions |
RFC | Y | ||
Add mb_ucfirst and mb_lcfirst functions |
RFC | Y | ||
Add grapheme_str_split function (improve handling of strings with emojis) |
RFC | Y | ||
Add bcround , bcfloor , bcceil to BC Math |
RFC | Y | ||
Deprecate implicitly nullable parameters | RFC | Y | ||
Support new MyClass()->method() without extra parentheses |
RFC | Y | ||
Add #[Deprecated] attribute and behavior |
RFC | Y | ||
Add property hooks | RFC | Y | ||
Change rounding mode to enum | RFC | Y | ||
Asymmetric visibility (public private(set) string $foo = 'bar'; ) |
RFC | Y | ||
Lazy object instantiation | RFC | Y | ||
Turn exit into a function |
RFC | Y |
Name | Links |
---|
Name | Links | Introduced |
---|---|---|
scalar types, strict_types=1 | RFC, Docs | 7.0 |
Native return types | RFC | 7.0 |
?? null coalesce operator |
RFC | 7.0 |
Spaceship operator (<=> ) |
RFC | 7.0 |
constants containing arrays | 7.0 | |
anonymous classes | RFC | 7.0 |
Unicode string literals \u{0000aa} |
RFC | 7.0 |
Group use imports |
RFC | 7.0 |
Throwable type |
RFC | 7.0 |
RNG functions random_bytes and random_int |
RFC | 7.0 |
?nullable type |
RFC | 7.1 |
void return type |
RFC | 7.1 |
iterable |
RFC | 7.1 |
Square bracket array destructuring - [$a, $b] = $array |
RFC | 7.1 |
class constant visiblity | RFC | 7.1 |
Multiple catch types in one block - catch (A|B $e) |
RFC | 7.1 |
keys in list() destructuring |
RFC | 7.1 |
negative string offsets | RFC | 7.1 |
Async handling pcntl_async_signals function |
RFC | 7.1 |
Native object typehint |
RFC | 7.2 |
override abstract method in extension | RFC | 7.2 |
sodium in core | RFC | 7.2 |
argon2i pw hash | RFC | 7.2 |
LSP-compatible parameter type widening | RFC | 7.2 |
grouped namespace trailing comma | RFC | 7.2 |
Flexible Heredoc+Nowdoc | RFC | 7.3 |
References in array destructiring | RFC | 7.3 |
Function call trailing commas | RFC | 7.3 |
generally improved mbstring | 7.3 | |
JSON constant JSON_THROW_ON_ERROR |
RFC | 7.3 |
is_countable function |
RFC | 7.3 |
typed class properties | RFC | 7.4 |
Arrow functions (fn () => returnValue) | RFC | 7.4 |
improved covariance/contravariance | RFC | 7.4 |
Null coalesce equals operator - ??= |
RFC | 7.4 |
Unpacking inside arrays | RFC | 7.4 |
Numeric literal separator - 1_000 |
RFC | 7.4 |
Added WeakReference class |
RFC | 7.4 |
FFI | RFC | 7.4 |
Opcache preload | RFC | 7.4 |
named arguments | RFC | 8.0 |
attributes - #[AttributeClass] |
RFC | 8.0 |
constructor property promotion | RFC | 8.0 |
Union types - Union|Type |
RFC | 8.0 |
match expression |
RFC | 8.0 |
Nullsafe property access - ?-> |
RFC | 8.0 |
WeakMap class |
RFC | 8.0 |
wider application of variadic parameters | 8.0 | |
static return type |
RFC | 8.0 |
get_class on object shorthand - $someObject::class |
RFC | 8.0 |
Stringable interface |
RFC | 8.0 |
abstract private mtehods in traits | RFC | 8.0 |
throw as expression |
RFC | 8.0 |
paramter list trailing comma | RFC | 8.0 |
Non-capturing catches - catch (Type) |
RFC | 8.0 |
Native mixed type |
RFC | 8.0 |
removal of invalid enforcement of private method variance rules | RFC | 8.0 |
String functions str_starts_with and str_ends_with |
RFC | 8.0 |
str_contains | RFC | 8.0 |
JIT | RFC | 8.0 |
get_debug_type function |
RFC | 8.0 |
LSP enhancements | RFC | 8.0 |
closure use trailing comma | RFC | 8.0 |
JSON always available | RFC | 8.0 |
Octal literal prefix - 0o14 |
RFC | 8.1 |
array unpack with string keys | RFC | 8.1 |
named arg in fn call unpack | 8.1 | |
enumerations | RFC | 8.1 |
fibers | RFC | 8.1 |
first-class callables - $s = strlen(...) instead of $s = fn ($str) => strlen($str) |
RFC | 8.1 |
Intersection types A & B & C |
RFC | 8.1 |
Native never return type |
RFC | 8.1 |
new in initializers - __construct(?Foo $foo = new Foo()) |
RFC | 8.1 |
readonly properties |
RFC | 8.1 |
Class constants can be final |
RFC | 8.1 |
array_is_list function |
RFC | 8.1 |
$GLOBALS restrictions |
RFC | 8.1 |
Internal method return types | RFC | 8.1 |