rfc:php8
Proposals for PHP 8
Introduction
This page is a spot to list and discuss ideas for PHP 8. This is not a place to discuss features which may be accepted in the 7.X series; it is for features which require backwards compatibility breaks to achieve.
Ideas and Proposals
Here are some ideas that have backwards compatibility implications:
- Unify behavior of userland and internal functions.
- In particular when internal functions fail to parse argument types correctly they fail by returning null. Userland functions throw a TypeError.
- Merge symbol tables:
- Extend
instanceof
to work with non-classes and add new functions for checking type and subtype relationships e.g.($int instanceof int)
is_type_of(1, 'int')
is_subtype_of('array', 'iterable')
. - Unify class and abstract type error behaviors when method incompatibilities exists; see https://3v4l.org/hamQi
- Remove always
true
return when isn't helpful for some functions and methods; see #75958.
Here are some feature ideas:
- covariant-returns-and-contravariant-parameters Add parameter contravariance and return type covariance. This will probably change when autoloads are triggered. Additionally we probably want to reserve new types related to variance such as
mixed
. New types in the global namespace are technically reserved already but in practice it would have a small BC impact. - JIT (link?)
- FFI (link?)
rfc/php8.txt · Last modified: 2018/08/12 00:16 by carusogabriel