- Mencakup property hooks, visibilitas asimetris, DOM API yang diperbarui, peningkatan performa, perbaikan bug, dan perapian umum
- Menyediakan property hooks yang mendukung properti terhitung yang dapat dipahami secara native oleh IDE dan alat analisis statis
- Memperkenalkan visibilitas asimetris yang memungkinkan kontrol independen atas cakupan baca dan tulis properti.
- Fitur baru
- Melalui atribut
#[\\Deprecated], mekanisme deprecation PHP yang sudah ada kini dapat diterapkan pada fungsi kustom, metode, dan konstanta kelas.
- DOM API baru mencakup dukungan yang patuh standar untuk parsing dokumen HTML5 serta memperbaiki berbagai bug kompatibilitas lama pada fungsi DOM.
- Menggunakan objek
BcMath\\Number untuk menangani angka presisi arbitrer secara berorientasi objek.
- Menyediakan fungsi array baru seperti
array_find(), array_find_key(), array_any(), array_all().
- Menyediakan subclass baru untuk PDO: Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc, Pdo\Pgsql, Pdo\Sqlite.
- Properti dan metode dari objek yang baru diinstansiasi kini dapat diakses tanpa tanda kurung.
- Kelas, antarmuka, dan fungsi baru
- Lazy Objects baru, implementasi JIT berbasis IR Framework.
- Menambahkan fungsi
request_parse_body(), bcceil(), bcdivmod(), bcfloor(), bcround().
- Menambahkan metode seperti
DateTime::createFromTimestamp(), DateTime::getMicrosecond(), DateTime::setMicrosecond().
- Menambahkan fungsi
mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst().
- Menambahkan fungsi
pcntl_getcpu(), pcntl_getcpuaffinity(), pcntl_getqos_class(), pcntl_setns(), pcntl_waitid().
- Menambahkan metode
ReflectionClassConstant::isDeprecated(), ReflectionGenerator::isClosed(), ReflectionProperty::isDynamic().
- Menambahkan fungsi
http_get_last_response_headers(), http_clear_last_response_headers(), fpow().
- Menambahkan metode
XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(), XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory().
- Menambahkan fungsi
grapheme_str_split().
- Deprecation dan breaking changes
- Ekstensi IMAP, OCI8, PDO_OCI, dan pspell dihapus dari bundle dan dipindahkan ke PECL.
- Tipe parameter yang secara implisit nullable kini deprecated.
- Penggunaan _ sebagai nama kelas kini deprecated.
- Menaikkan 0 ke pangkat negatif kini deprecated.
- Jika mode yang tidak valid diberikan ke
round(), akan terjadi ValueError.
- Konstanta kelas dari ekstensi kini memiliki tipe.
- Kelas GMP kini ditetapkan sebagai final.
- Konstanta dan fungsi terkait MYSQLI kini deprecated.
stream_bucket_make_writeable() dan stream_bucket_new() kini mengembalikan instance StreamBucket.
- Perubahan perilaku
exit().
- Konstanta E_STRICT kini deprecated.
- Peningkatan performa dan sintaks
- Peningkatan performa, perbaikan sintaks, dan peningkatan type safety.
- Disarankan untuk upgrade ke PHP 8.4.
3 komentar
Berkat WordPress dan Laravel, setidaknya ini adalah bahasa yang tidak akan membuat orang mati kelaparan.
Bahkan jika WordPress dan Laravel tumbang, ini adalah bahasa yang tidak akan membuat Anda mati kelaparan.
Komentar Hacker News
Alasan
$this->countryCodetidak memicu rekursi tak terbatas dijelaskan dalam RFC. Terasa seperti sihir bahwa akses properti di PHP bisa memiliki makna berbeda tergantung konteks.Sebagai programmer PHP, saya khawatir dengan arah PHP. Fitur-fitur bahasa baru meningkatkan kompleksitas bahasa demi manfaat yang meragukan.
Saya senang PHP masih terus berkembang. Pada 2021 saya sempat khawatir setelah kepergian Nikita Popov, tetapi PHP tetap menjadi bahasa yang baik dengan banyak pengembang yang masih aktif.
Yang paling saya nantikan adalah property hooks. Ini fitur yang saya rindukan dari C#.
__get()dan__set(), tetapi itu terasa berat dan membutuhkan banyak anotasi PHPDoc.Saat melihat overloading accessor array, saya menemukan "Property Hooks". Saya terkejut mengetahui bahwa ini adalah fitur yang baru ditambahkan.
Saya puas dengan rilis baru PHP ini. Ada banyak peningkatan seperti stack trace yang lebih baik untuk closure, peningkatan performa, dukungan HTML5, lazy objects, dan lainnya.
Saya menantikan objek bcmath. Bukan operator aritmetikanya, melainkan karena kini kita bisa melakukan pengecekan tipe data tanpa wrapper class.
Saya senang PHP masih terus berkembang. Ini mengingatkan saya pada masa saat memulai sebagai freelancer.
Fungsi baru
array_finddi PHP menunjukkan masalah dalam desain bahasa. Mirip denganarray_searchyang sudah ada, tetapi urutan argumennya berbeda.Saya tidak memahami "public private(set)". "readonly public" tampak lebih masuk akal.
private(set)di Swift.