PHP has been the primary element in the creation of some of the greatest websites of our time, and can easily be called as the backbone of today’s internet. There is no comparison to PHP when it comes to creating massively scalable web apps. Initially, there were just HTML and CMS, then gradually PHP came in to further and beyond, improve upon how we created websites.
Back in 1995, PHP was called personal home page tools, and it was the first time this name was heard. It has come far from that time, but has still retained some of the core features, and will probably retain them on for the time to come. There have been several version upgrades of PHP, and PHP 7.4 marks the end of version 7. PHP version 8 will be released sometime in the last quarter of 2020, but PHP 7.4 packs so much improvement, it surely deserves a blog of its own.
What makes PHP so special is its capabilities, scalability, and simplicity. The community support of PHP is massive, every time you hit a dead end, someone would be there to help you. Creating websites with PHP is much easier if you have a working knowledge of HTML and CSS, together these three are called the pillars of the world wide web. With continuous upgrades and improvements in PHP, it is simply one of the best choices for web development in 2019 and the decade to come.
Let’s get started with what’s new in PHP 7.4, with a brief description of each upgrade.
1. Arrow function/Short closure
The way of shortening how we write and use functions in PHP has been introduced in PHP 7.4 as short closures. It will work to greatly concise the code and save time and hassle of writing unnecessarily long words to use functions. However, one must remember that short closures can only have one expression, it has been debated about how they are fairly pointless for multi-line functions. But with the amount of time you will save with it, it only gets better and better, when using it for single-line functions.
2. Typed properties
Typed properties have concise the code way down from the getter-setter method, it is like a dream come true for most PHP developers. Declaring type classes are now a breeze and it was indeed a long-awaited feature to in PHP’s old type system.
There are, however, two main disadvantages to it, you can’t add further abstractions after going public through typed properties. And second, you can’t add validations to your attributes if you choose to go the typed properties way. Maybe both of these will be adjusted and improvised over in PHP 8.0, but it is what it is, for now at least.
3. The null coalescing assignment operator
It works on top of the null coalesce operator which was introduced in PHP 7.0, which then replaced the ternary operation which was used in conjunction with the isset() function. Null coalescing assignment operator makes things even simpler and saves more time to gather value of variables and jump on to next if the value is null. It had great improvements when first used in PHP 7.0, the assignment operator upgrade makes it even better in PHP 7.4
It is one of the few changes to the core of PHP in a long time, preloading essentially makes PHP much faster than before. While scalability was top notch with PHP already, the performance, however, had been somewhat of an issue for a while. Preloading works as the name suggests, it helps preload functions, libraries, files, and more on the server, to make significant performance improvements.
You can now write a simple script to preload anything you wish on the server. Keep in mind the changes you make on preloaded files won’t have any effect till the server is restarted. Also, you will have to take care of everything a class depends on, is also uploaded to the server together with the class, you will be notified at the start if you fail to do so.
5. Covariant and contravariant return types
PHP has moved on from invariant return types, and you can now assign covariant and contravariant parameter types and return types. Covariant types are ones in which ordering of types is preserved, types are ordered from specific to generic. While contravariant types are ones in which ordering of types is reversed, types are ordered from more generic to more specific.
Confused about what to choose between Python and PHP? Here is our take on Python vs PHP in 2019
6. Weak references
Weak references introduced in PHP 7.4 are really helpful when it comes to implementing important cache like structures. With weak references, you can now retain the reference to an object, and it won’t prevent the object from being destroyed. The thing to be noted is that it does not support serialization, and nor does the proposed API support properties.
7. Spread operator
With PHP 7.4, you can now use the spread operator in arrays. Previously your only option was using array_merge, which is a simple call to action function. However, the spread operator is a language structure, which will greatly reduce the compile time for constant arrays. Since spread operator is a language structure, you could easily expect a nice performance upgrade and a fair speed upgrade while coding in PHP 7.4
8. Custom object serialization
The two older methods, the magic method, __sleep() and __wakeup(), and the serializable interface have now been combined. The previous two methods were unreliable, which was one of the major reasons why this change was accepted with a high number of votes in favor of it. Their combined form now is a new magic method, which can be used by __serialize() and __unserialize(), as we said above, it is a combination of both the other methods.
PHP 7.4 new features are sure to make coding in PHP less complicated, easier, and would significantly reduce redundant code, and time to code. A performance boost is on the list too, but may we say it is going to be much higher in PHP 8.0. We have another year, to say the least, for PHP 8.0, but the features packed in PHP 7.4 certainly didn’t disappoint at all. It is definitely worth upgrading if you ask for our opinion, the performance upgrades and the ease of coding alone make up for that.
If you are working on large scale projects, you would be eyeing anywhere around 10% performance increase with implementing features of PHP 7.4 correctly. We know how far it has come, but we believe it is only the beginning of the creation of a perfect web development language. PHP is definitely ahead of everyone on the race to be the perfect web development language, and the timely updates PHP gets, prove it all the more.
In case you are looking for PHP developers, here is our very own ultimate guide to hiring the perfect PHP developer.