#1 Named Arguments
Mirip seperti apa yang dimiliki oleh Python. Kita ambil contoh sebuah fungsi PHP dengan argumen yang cukup panjang yaitu setcookie. Sehingga urutan argumen tidak perlu diperhatikan ketika pemanggilan
dilakukan.
Pada PHP 8 kode lebih self-documented dan dapat melakukan skip optional parameter. Syntax dari named arguments mirip dengan Javascript object.
#2 Constructor Property Promotion
Fitur kedua yang saya suka adalah constructory property promotion. Karena dengan adanya fitur ini, menghindari penulisan berulang-ulang atribut pada sebuah class constructor.
#3 Match Expression
Saya bukan penggemar penggunaan percabangan else atau switch. Saya selalu menghindari penggunaan keduanya jika memungkinkan dan hanya menggunakan if saja jika perlu. Dengan adanya Match expression tentu saya sangat menyukainya.
#4 Nullsafe Operator
Dengan adanya fitur Nullsafe operator maka pemanggilan sebuah method pada sebuah objek dalam rantai pemanggilan tidak akan menghasilkan pesan error jika atribut dari objek tersebut adalah null.
#5 Union Types
Fitur Union Types dapat menggabungkan satu atau lebih tipe data dengan menggunakan operator | pipe. Sebagai contoh sebuah fungsi dapat menerima inputan berupa angka dalam bentuk integer dan float.
#6 Attributes
Ketika melakukan dokumentasi parameter dan nilai balik umumnya developer PHP menggunakan syntax PHPDoc. Dengan PHP 8 developer dapat menggunakan syntax PHP untuk menambahkan dokumentasi atau metadata pada sebuah fungsi atau class.
#7 String to Number Comparisons
Pada PHP 8 proses perbandingan sebuah string dengan angka lebih ketat untuk menghindari “kejutan” yang dihasilkan dari komparasi yang salah. Sebelum PHP 8 tanpa menggunakan strict comparison operator ( === ) kode berikut bernilai true.
- #8 JIT (Just-In-Time Compilation)
#8 JIT (Just-In-Time Compilation)
JIT adalah fitur besar yang ditambahkan tim pengembang pada PHP 8. Secara sederhana konsep JIT adalah melakukan kompilasi kode program saat dijalankan (Just in Time), sehingga bagian kode yang sudah dikompilasi berjalan lebih cepat.
Sayangnya pada kasus aplikasi web JIT memang tidak memberi dampak yang terlalu signifikan. Tapi diluar itu peningkatan performa cukup menjanjikan.