PHP 7.4 release date is November 28, 2019. PHP 7.4 is a next basic release before PHP 8. PHP 7.4 comes with lots of new features. So it’s time for us to dive into some of the most exciting additions and new features that will make PHP faster and more reliable
Spread operator should have better performance than array_merge. That’s not only because the spread operator is a language structure while array_merge is a function, but also because of compile time optimization can be performance for constant arrays.
$name = ['ikhlaque', 'raheel'];
$test = ['A', 'B', ...$name, 'C'];
var_dump($test);
Output
array(5) {
[0]=>
string(6) "A"
[1]=>
string(6) "B"
[2]=>
string(5) "ikhalque"
[3]=>
string(4) "Raheel"
[4]=>
string(10) "C"
}
Arrow function also called a short closures allow for less verbose one-liner functions.
Previously we write as follwing
array_map(function (User $user) {
return $user->id;
}, $users)
You can now write
array_map(fn (User $user) => $user->id, $users)
Let’s summarise how short closures can be used.
Null Coalescing assignment operator ( ?? ) a shorthand for null
$username = $_GET['username'] ?? ‘everybody';
Weak references it allow programmer to give reference to an object that doesn’t prevent the object itself from being destroyed. Currently PHP supports Weak References by using an extention like pecl-weakref. Anyway, the new API is different from the documented WeakRef class.
$object = new stdClass;
$weakRef = WeakReference::create($object);
var_dump($weakRef->get());
unset($object);
var_dump($weakRef->get());
Typed properties add in PHP 7.4 and provided a major improvements. Type Hint feature since available from PHP 5. Now we can use them with Object data type. All type supported except NULL and VOID. Following is the very basic example
--- Example 1 ---
class User {
public int $id;
public string $name;
}
--- Example 2 ---
class User {
public int $id;
public string $name;
}
$user = new User;
$user->id = 10;
$user->name = [];
In the code above, we declared a string property type, but we set an array as property value. In such scenario, we get the following Fatal error:
Introduction In the world of web development, selecting the correct framework is critical. Laravel and…
Introduction By enabling containerization, Docker has transformed the way software is built, deployed, and managed.…
Introduction Speed and efficiency are critical in the ever-changing world of web development. Effective caching…
Introduction Git, a popular version control system in software development, enables developers to track changes,…
Introduction Are you tired of grappling with tangled changes and unfinished work while using Git?…
Introduction Version control is essential in software development because it ensures that changes to a…