What are the problems with the old code?
Because PHP 8 is a major new release, one should expect old code to no longer be compatible. However, most of the changes that could lead to complications were already addressed in versions 7.2, 7.3, and 7.4.
The latest changes include:
- The real type
- Magic quotes legacy
- array_key_exists() with objects
- FILTER_SANITIZE_MAGIC_QUOTES filter
- Reflection export() methods
- mb_strrpos() with encoding as 3rd argument
- implode() parameter order mix
- Unbinding $this from non-static closures
- hebrevc() function
- convert_cyr_string() function
- money_format() function
- ezmlm_hash() function
- restore_include_path() function
- allow_url_include ini directive
If you have always kept your code up to date, you won’t have any problems migrating to PHP 8, even if the new update is a major release without backward compatible changes. A complete list of changes can be found on the PHP project site.
PHP is a powerful, and widely accessible, open-source programming language that is primarily used in website development. Even though we constantly see a rise in all sorts of different technologies and website-building software, PHP remains one of the most widely used languages, powering a staggering number of websites. The new version, PHP 8, promises to bring even more power and speed allowing for even better results.
What are the PHP 8 improvements and features?
PHP 8 went live on November 26 and will introduce a lot of improvements in speed, security and cleanness of code:
Faster Code Execution: PHP 8 is the first PHP version that has a compiler – JIT – that caches your interpreted code and generates a machine code as an output. The JIT, or “just in time” compiler promises speed improvements for complex tasks and algorithms and opens new opportunities for the PHP language to broaden its reach and applications.
Code with Higher Quality: One of the major differences you will notice with PHP 8 is that many of the warnings and notices that were hard to catch are now classified as code exceptions or errors, which can be caught and logged. It is possible that due to this update, a lot of problems that remained hidden as notices with the previous PHP versions will now surface.
Cleaner, Shorter Code: Some of the new elements, such as the null safe operator, greatly improve the readability of the code, making it shorter and neater. The null safe operator provides functionality similar to null coalescing, but also supports method calls. Instead of nesting several “if statements” you can use the “null” operator to write all those in just 1 line of code.
The “Union Type” Trend: In versions prior to PHP 8.0, you could only declare a single type for properties, parameters, and return types. In this latest release, there is a feature called “union types” that are a collection of two or more types which indicate that either one of those can be used. A union type essentially declares an OR condition for multiple types in the argument type, return type or property type declaration.
The release candidate version has been available for testing for a while now. Most quality website hosting companies should already have an option for developers to test it on their platform. Since major versions often include changes that might break backward compatibility, it’s better to test the release candidate version as early as possible, and prepare your code if you want to get all the benefits of the latest update.
Keeping up with the latest PHP versions is essential if you want to have fast and secure code. PHP 8 is a major and highly anticipated update, but before upgrading, it is strongly recommended to test it on a Staging version of your website first, in order to fix any incompatibility or errors in advance. For more information on the new features and other changes, you can read the NEWS file, or the UPGRADING file for a complete list of upgrading notes.