PHP 7.4 in 7 code blocks

Written by / Original link on May. 23, 2020

PHP 7.4, the last edition in the 7.* series, brings lots of new and handy changes. This post lists the highlights, though there's much more to this release. You can read all about the full release in this post about what's new in PHP 7.4.

    fn(User $user) => $user->id,

Arrow functions, a.k.a. short closures. You can read about them in depth in this post.

class A
    public string $name;
    public ?Foo $foo;

Type properties. There's quite a lot to tell about them.

$data['date'] ??= new DateTime();

The null coalescing assignment operator. If you're unfamiliar with the null coalescing operator, you can read all about shorthand operators in this blog.

class ParentType {}
class ChildType extends ParentType {}

class A
    public function covariantReturnTypes(): ParentType
    { /* … */ }

class B extends A
    public function covariantReturnTypes(): ChildType
    { /* … */ }

Improved type variance. If you're not sure what that's about, you should take a look at this post about Liskov and type safety.

$result = [...$arrayA, ...$arrayB];

The array spread operator. There are a few sidenotes to be made about them.

$formattedNumber = 107_925_284.88;

The numeric literal separator, which is only a visual aid.


Preloading improves PHP performance across requests. It's a complicated topic, but I wrote about it here.

There's even more. If you want a full list, you can find it on this blog. What 7.4 feature do you like the most? Let me know on Twitter or via email.

« Laravel Pseudo-Daemons - The Miracle Sudoku »