![]() |
Ihza Rizky Blog. |
Bismillah, pada Artikel kali ini saya akan membahas mengenai hal yang lagi diperbincangkan banyak developer PHP di Tanah Air Indonesia dan negara lainnya yaitu mengenai update terbaru dari PHP yaitu PHP Versi 8.0.0 pada tanggal 26 November 2020. Pada versi 8 ini PHP membawa banyak perubahan mengenai fitur-fitrunya. diantara yang akan dibahas dibawah ini :
- Named Arguments
Sebenarnya ini bukan fitur baru dalam dunia pemrograman seperti bahasa python dan ruby yang telah lebih dulu memilkinya. akan tetapi, bagi pengguna bahasa pemrograman php ini merupakan hal yang baru dan menyelesaikan masalah lebih cepat. Fitur ini digunakan untuk memberi nama dari sebuah argumen dalam sebuah fungsi.
- Constructor property promotion
Nah, kali ini PHP 8 hadir dengan fitur baru yaitu Constructor property promotion dalam OOP yang berfungsi untuk membuat property didalam sebuah constructor. jadi, tanpa kita mendefinisikan property sebelum constructor. Akan tetapi, langsung mendefinisikannya kedalam method constructor.
- Match Expression
Match Expression merupakan versi perubahan dari switch case. dengan menggunakan Match Expression kita tinggal menentukan value dan keynya saja. beda halnya dengan switch case yang hharus menulisnya berulang-ulang dengan tambahan break juga.
- Union Types
Union Types berfungsi untuk menggabungkan tipe data dalam satu variabel.
Berikut Contoh Kode Perubahan PHP 8 :
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// NAMED ARGUMENTS | |
// PHP 7 | |
htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, 'UTF-8', false); | |
// PHP 8 | |
htmlspecialchars($string, double_encode: false); | |
/****************************************/ | |
// Constructor property promotion | |
// PHP 7 | |
class Point { | |
public float $x; | |
public float $y; | |
public float $z; | |
public function __construct( | |
float $x = 0.0, | |
float $y = 0.0, | |
float $z = 0.0, | |
) { | |
$this->x = $x; | |
$this->y = $y; | |
$this->z = $z; | |
} | |
} | |
// PHP 8 | |
class Point { | |
public function __construct( | |
public float $x = 0.0, | |
public float $y = 0.0, | |
public float $z = 0.0, | |
) {} | |
} | |
/****************************************/ | |
// Match Expression | |
// PHP 7 | |
switch (8.0) { | |
case '8.0': | |
$result = "Oh no!"; | |
break; | |
case 8.0: | |
$result = "This is what I expected"; | |
break; | |
} | |
echo $result; | |
//> Oh no! | |
// PHP 8 | |
echo match (8.0) { | |
'8.0' => "Oh no!", | |
8.0 => "This is what I expected", | |
}; | |
//> This is what I expected | |
/****************************************/ | |
// UNION TYPES | |
// PHP 7 | |
class Number { | |
/** @var int|float */ | |
private $number; | |
/** | |
* @param float|int $number | |
*/ | |
public function __construct($number) { | |
$this->number = $number; | |
} | |
} | |
new Number('NaN'); // Ok | |
// PHP 8 | |
class Number { | |
public function __construct( | |
private int|float $number | |
) {} | |
} | |
new Number('NaN'); // TypeError | |
Intinya PHP 8 lebih ringkas ya secara penulisan daripada PHP 7 atau sebelumnya
Sumber lengkap : https://www.php.net/releases/8.0/en.php
0 komentar:
Posting Komentar
Berkomentarlah dengan sopan dan menggunakan bahasa yang mudah dimengerti