Setahun setelah dirilisnya PHP7.3, pada 28 November 2019 PHP7.4 dirilis. Dengan dirilisinya PHP7.4 juga menandai berakhirnya dukungan terhadap PHP7.1 dan sudah waktunya anda meninggalkan sepenuhnya PHP5. Jika anda saat ini masih menggunakan PHP5 pada aplikasi baru anda, kasihan klien anda. Sebagai salah satu bahasa pemrograman yang paling banyak digunakan pada aplikasi web hadirnya PHP7.4 ini menjadi kabar baik bagi pegiat kode terutama yang menggunakan PHP. Untuk itu mari kita lihat apa saja yang baru di PHP7.4 kali ini.

Fitur Baru pada PHP 7.4

PHP7.4 membawa beberapa fitur baru diantaranya typed properties, arrow functions, limited return type covariance and argument type contravariance, null coalescing assignment operator, unpacking inside array, numeric literal separator, weak references dan berbagai fitur lainnya. Yang akan saya bahas disini tidak semuanya tetapi hanya beberapa yang mungkin dapat membantu banyak pekerjaan kita di masa depan.

Short Arrow Functions

Di javascript arrow function sudah menjadi hal yang biasa dilakukan, akhirnya di PHP7.4 arrow function muncul di PHP. Dengan arrow function maka fungsi yang kita buat akan membutuhkan lebih sedikit kode dan baris.  Contoh penggunaan arrow function seperti di bawah ini.

<?php
$factor = 10;
$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
// $nums = array(10, 20, 30, 40);
?>

Array Spread Separator

Sekarang anda dapat melakukan unpacking array di dalam array. Namun dalam fitur ini masih hanya terbatas pada array dengan key berupa numeric (non-string-key-array). Contoh penggunaannya seperti dibawah ini.

<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];
// ['banana', 'orange', 'apple', 'pear', 'watermelon'];
?>

Typed Properties

Sebagai bahasa yang dinamis mungkin bagi sebagian orang ini menjadi salah satu kelemahan PHP. Namun dengan PHP7.4 anda dapat memberikan sedikit sentuhan static type pada kode anda dengan Typed Properties. Penggunaan Typed Properties hanya dapat digunakan pada lingkup Class. Dengan deklarasi typed properties, maka perubahan tipe akan memberikan pesan kesalahan pada aplikasi. Contoh penggunaannya seperti di bawah ini.

<?php
class Belajar
{
    public string $arief;
    private int $nomor}

?>

Null coalescing assignment operator

Coalescing/Ternary Operator mungkin menjadi yang paling dioptimasi pada beberapa versi PHP akhir-akhir ini. Dengan hadirnya PHP7.4 coalescing/Ternary operator makin dimanjakan dengan tambahan fungsi assignment. Contoh penggunaan seperti di bawah ini.

<?php
$array['key'] ??= computeDefault();
// is roughly equivalent to
if (!isset($array['key'])) {
    $array['key'] = computeDefault();
}
?>

Preloading Opcache

Tidak berhubungan dengan kode di PHP namun sangat baik untuk disebutkan dalam tulisan ini. Dengan Preloading Opcache dapat memberikan peluang pada developer untuk mengakses fungsi yang pada umumnya tidak berubah (sebagai contoh paket pada composer) langsung dari memory. Dengan begitu kita dapat menghindari proses monoton dari preloaded code. Namun jangan salah, dengan fitur ini jika fungsi anda berubah, anda harus melakukan restart server karena PHP masih akan membaca dari memori alih-alih dari disk anda.

Fungsi baru pada PHP7.4

TIdak banyak fungsi baru pada rilis PHP7.4. Beberapa diantaranya adalah:

  • get_mangled_object_vars()
  • password_algos()
  • sapi_windows_set_ctrl_handler()

Deprecated Feature pada PHP7.4

Beberapa fitur dan fungsi yang deprecated pada versi ini antara lain.

  • Nested Ternary Operator tanpa kurung akan memberikan pesan error
  • (real) cast dan fungsi is_real() digantikan dengan is_float()
  • Penggunaan array_key_exist() pada konteks object tidak dapat lagi dilakukan
  • fungsi money_format() sekarang digantikan oleh NumberFormatter
  • Short open tag seperti ini <? ?> akan sepenuhnya tidak dapat lagi digunakan pada PHP7.4

Itu tadi hal-hal baru dalam PHP7.4 yang tentunya akan menambah kekuatan bahasa pemrograman ini juga produktivitas dari pegiat kode dalam bahasa PHP. Sekian semoga bermanfaat dan Happy Coding!


Sumber : https://www.php.net/manual/en/migration74.php