Beberapa Fitur Baru Yang ada Pada PHP 8
Perlu kita ketahui PHP 8 telah di luncurkan pada tahun 2020 kemarin. Ada beberapa fitur baru yang belum ada pada versi sebelumnya. Fitur apa saja yang baru dari PHP 8 ?. Ada beberapa fitur baru yang belum ada pada versi sebelumnya. Fitur apa saja yang baru dari PHP 8 ?
Mari kita bahas satu
persatu beberapa fitur baru yang ada pada PHP 8
1. Named Argument
Named argument mempunyai fungsi untuk menentukan parameter
dan akan melewati parameter yang bersifat pilihan/optional. Dengan fitur
tersebut tentunya akan membuat sebuah perubahan saat kita membuat function dalam PHP akan lebih mudah dan
singkat.
Perhatikan contoh berikut ini kita gunakan fungsi htmlchar() dengan kode seperti berikut
ini :
htmlchar($string, ENT_COMPAT | ENT_HTML401. ‘UTF-8’, false);
Pada kode diatas jika dijalankan pada versi PHP 7 kebawah masih bisa berfungsi namun jika dijalankan pada PHP 8 sudah tidak berfungsi lagi, jika kita menulisnya pada PHP 8 maka kode programya akan seperti berikut ini :
htmlchar($string, double_encode: false);
Union type mempunyai fungsi untuk menggabungkan beberapa tipe
data di dalam sebuah variabel.
Contohnya pada PHP 7 :
<?php
class Angka
{
//@var int|float
private $angka;
//@param float|int @angka
public function __construct($angka) {
$this->angka = $angka;
}
}
new Angka('NaN'); //OK
?>
<?php
class Angka
{
public function __construct(private int|float $angka) {
$this->angka = $angka;
}
}
new Angka('NaN');
?>
3. Attribute
Dengan PHP 8 kita
dapat menggunakan struktur metadata
di native syntax.
class PostsController
{
//@Route("/api/posts/{id}", methods={"GET"})
public function get($id) { /** isi fungsi **/ }
}
Pada contoh kode diatas kita dapat menambahkan attribute methods pada PHP 8 sehingga akan seperti dibawah ini
:class PostsController
{
#[Route("/api/posts/{id}", methods: ["GET"])]
public function get($id) { /* isi fungsi */ }
}
4.
Constructor Property Promotionclass Number {
public int $a;
public int $b;
public int $c;
public function __construct(
int $a = 0,
int $b = 0,
int $c = 0,
) {
$this->a = $a;
$this->b = $b;
$this->c = $c;
}
}
Jika dalam php 8
maka dapat lebih ringkas seperti berikut ini :class Number {
public function __construct(
public int $a = 0,
public int $b = 0,
public int $c = 0,
) {}
}
5.
Match ExpressionSaat membuat pemilihan kita sering menggunakan statement switch case atau if seperti berikut ini :
switch (8) {
case '8':
$result = "Ini String";
break;
case 8:
$result = "ini Angka 8";
break;
}
echo $result;echo $result;
Dengan menggunakan PHP 8 kita dapat meringkas kode diatas
menjadi seperti berikut ini :echo match (8) {
'8' => "Ini String",
8 => "Ini Angka 8",
};
Perlu kita ketahui match
dengan switch mempunyai perbandingan
sebagai berikut :-
Match merupakan ekspresi yang mempunyai arti
hasilnya dapat disimpan di dalam variabel atau dapat dikembalikan
-
Dalam cabang perbandingan match hanya mendukung
single-line dan tidak perlu menggunakan pernyataan break.
-
Match dapat melakukan strict comparisons
6. Nullsafe Operator
Dengan menggunakan nullsafe
operator kita tidak perlu lagi menggunakan if statement dalam mendeteksi sebuah variabel atau function mempunyai nilai “null” atau tidak.
$negara = null;
if ($session !== null) {
$user = $session->user;
if ($user !== null) {
$alamat = $user->getAlamat();
if ($alamat !== null) {
$negara = $alamat->negara;
}
}
}
Pada PHP 7 seperti contoh diatas kita terlalu banyak
menggunakan statement if untuk
mendeteksi isi variabel / function
nilainya null atau tidak.$negara = $session?->user?->getAlamat()?->negara;
Pada PHP 7 dalam
perbandingan nyatanya masih ada yang belum sesuai dengan fakta-nya. Perhatikan
contoh kode berikut ini:
0 == “foobar”
AKode diatas harusnya hasilnya adalah false namun pada PHP 7
hasilnya dapat bernilai true.Pada PHP 8 sekarang hasilnya lebih akurat dan bernilai false
8.
Type Error
Pada PHP 7 pada saat kita menuliskan kode function yang
salah maka akan muncul keterangan error yang menurutku masih ngambang yang
hanya memberikan peringatan saja. Beda dengan PHP 8 yang menjadi lebih baik
untuk sekarang ini.
strlen([]); // Warning: strlen() expects parameter 1 to be string, array given
array_chunk([], -1); // Warning: array_chunk(): Size parameter expected to be greater than 0
Jika pada PHP 8 penjelasannya menjadi lebih baik lagi
seperti beirkut ini :strlen([]); // TypeError: strlen(): Argument #1 ($str) must be of type string, array given
array_chunk([], -1); // ValueError: array_chunk(): Argument #2 ($length) must be greater than 0
Itulah beberapa fitur baru yang telah hadir pada PHP 8 yang dapat memudahkan developer web dalam mengembangkan
aplikasinya. Sebenarnya masih ada beberapa pembaruan dari PHP 8 yang belum kita
bahas namun kita cukupkan sampai disini dulu artikel kali ini. Kita sambung
lagi pembahasan tentang perbaikan dan penambahan fitur pada PHP 8 pada artikel
selanjutnya.
Post a Comment for "Beberapa Fitur Baru Yang ada Pada PHP 8"