Rilis beta pertama dari cabang baru bahasa pemrograman PHP 8. Rilis dijadwalkan pada 26 November. Pada saat yang sama, rilis korektif PHP 7.4.9, 7.3.21, dan
7.2.33, yang menghilangkan kesalahan dan kerentanan yang terakumulasi.
Utama PHP 8:
- , yang penggunaannya akan meningkatkan produktivitas.
- Argumen fungsi bernama, yang memungkinkan Anda meneruskan nilai ke suatu fungsi berdasarkan nama. Ini berarti Anda dapat meneruskan argumen dalam urutan apa pun dan menentukan argumen opsional. Misalnya, "array_fill(start_index: 0, num: 100, value: 50)".
- Saat memanggil metode Menggunakan operator "?", yang memungkinkan Anda untuk memulai panggilan hanya jika metode tersebut ada, sehingga menghindari pemeriksaan yang tidak perlu untuk mengembalikan nilai null. Misalnya, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
- Dukungan , mendefinisikan koleksi dari dua tipe atau lebih (misalnya, “public function foo(Foo|Bar $input): int|float;”).
- Dukungan (anotasi) yang memungkinkan Anda mengikat metadata (seperti informasi tipe) ke kelas tanpa menggunakan sintaksis Docblock.
- Dukungan ekspresi , yang, tidak seperti switch, dapat mengembalikan nilai, mendukung penggabungan kondisi, menggunakan perbandingan tipe yang ketat, dan tidak memerlukan spesifikasi "break".
$result = cocok($input) {
0 => "halo",
'1', '2', '3' => "dunia",
}; - definisi kelas, memungkinkan Anda menggabungkan definisi konstruktor dan properti.
- Jenis pengembalian baru - .
- Tipe baru - , yang dapat digunakan untuk menentukan apakah suatu fungsi menerima parameter dari tipe yang berbeda.
- Ekspresi untuk menangani pengecualian.
- untuk membuat objek yang dapat dikorbankan selama pengumpulan sampah (misalnya, untuk menyimpan cache yang tidak diperlukan).
- menggunakan ekspresi “::class” untuk objek (analog dengan memanggil get_class()).
- definisi di blok tangkapan pengecualian yang tidak terikat pada variabel.
- meninggalkan koma setelah elemen terakhir dalam daftar parameter fungsi.
- Antarmuka baru untuk mengidentifikasi tipe string atau data apa pun yang dapat dikonversi menjadi string (yang tersedia metode __toString()).
- Fitur baru , analog strpos yang disederhanakan untuk menentukan kemunculan substring, serta fungsi str_starts_with() dan str_ends_with() untuk memeriksa kecocokan di awal dan akhir string.
- Fitur tambahan , yang melakukan operasi pembagian tanpa menimbulkan kesalahan saat membagi dengan nol.
- logika penggabungan string. Misalnya, ungkapan 'echo "sum:" . $a + $b' sebelumnya diartikan sebagai 'echo ("sum: " . $a) + $b', dan di PHP 8 akan diperlakukan sebagai 'echo "sum: " . ($a + $b)'.
- memeriksa operasi aritmatika dan bit, misalnya ekspresi "[] % [42]" dan "$object + 4" akan menghasilkan kesalahan.
- algoritma pengurutan yang stabil di mana urutan nilai yang identik dipertahankan di berbagai proses.
Sumber: opennet.ru
