to behave more consistently across platforms. Conversions between floating-point numbers and integers were changed (e.g. infinity changed to convert to zero) and implemented more consistently across platforms. PHP 7 also included new language features. Most notably, it introduced return type declarations for functions which complement the existing parameter type declarations, and support for the scalar types (integer, float, string, and boolean) in parameter and return type declarations. PHP 8 PHP 8 was released on November 26, 2020. PHP 8 is a major version and has breaking changes from previous versions. New features and notable changes include: Just-in-time compilation Just-in-time compilation is supported in PHP 8. PHP 8's JIT compiler can provide substantial performance improvements for some use cases, while PHP developer Nikita Popov stated that the performance improvements for most websites will be less substantial than the upgrade from PHP 5 to PHP 7. Substantial improvements are expected more for mathematical-type operations than for common web-development use cases. Additionally, the JIT compiler provides future potential to move some code from C to PHP, due to the performance improvements for some use cases. Addition of the match expression PHP 8 introduced the expression. The match expression is conceptually similar to a statement and is more compact for some use cases. Because is an expression, its result can be assigned to a variable or returned from a function. Type changes and additions PHP 8 introduced union types, a new return type, and a new type. "Attributes", often referred to as "annotations" in other programming languages, were added in PHP 8, which allow metadata to be added to classes. was changed from being a statement to being an expression. This allows exceptions to be thrown in places that were not previously possible. Syntax changes and additions PHP 8 includes changes to allow alternate, more concise, or more consistent syntaxes in a number of scenarios. For example, the nullsafe operator is similar to the null coalescing operator , but used when calling methods. The following code snippet will not throw an error if returns null: $human_readable_date = $user->getBirthday()?->diffForHumans(); Constructor property promotion has been added as "syntactic sugar," allowing class properties to be set automatically when parameters are passed into a class constructor. This reduces the amount of boilerplate code that must be written. Other minor changes include support for use of on objects, which serves as an alternative for the use of ; non-capturing