PHP 8.5 Memperkenalkan Sambungan URI, Operator Paip, dan Penambahbaikan Sintaks


PHP 8.5 memperkenalkan sambungan URI baru, operator paip, dan peningkatan sintaks utama, memberikan prestasi yang lebih pantas dan kod yang lebih kemas.

PHP, bahasa pengaturcaraan sisi-pelayan yang digunakan terutamanya untuk membina laman web dan aplikasi web dinamik, baru sahaja mengeluarkan versi 8.5, satu kemas kini utama yang menambah sintaks baru, sokongan atribut yang diperluas, penambahbaikan prestasi, dan pelbagai ciri yang dipacu oleh RFC.

Salah satu penambahan paling penting ialah sambungan URI terbina dalam yang baharu. Ia menyediakan API yang konsisten untuk menafsir dan mengubah URL, selaras dengan kedua-dua piawaian RFC 3986 dan URL WHATWG. Disokong oleh uriparser dan Lexbor, ia menggantikan parse_url() dalam situasi di mana pengendalian yang tepat dan mematuhi piawaian diperlukan.

Satu lagi sorotan utama versi ini adalah pengenalan operator paip (|>), yang membolehkan rantai fungsi dari kiri ke kanan. Ini menghapuskan panggilan fungsi yang bersarang dengan mendalam, menjadikan saluran transformasi lebih mudah dibaca dan diselenggara. Nilai bergerak terus melalui callable, termasuk fungsi anak panah dan aplikasi separa seperti trim(...).

PHP 8.5 juga meningkatkan pengendalian objek dengan sintaks clone-with. Pembangun kini boleh mengemas kini sifat tertentu semasa menyalin objek melalui clone($obj, ['prop' => value]), memudahkan corak “with-er” dan menjadikannya boleh digunakan dalam kelas read-only tanpa kod berulang.

Satu lagi penambahan ialah atribut #[\NoDiscard], yang mengeluarkan amaran apabila nilai pulangan sesuatu fungsi diabaikan secara tidak sengaja. Ini membantu menangkap kesilapan dalam API di mana nilai yang dikembalikan diperlukan untuk perilaku yang betul, dengan (void) tersedia apabila pembangun secara jelas memilih untuk mengabaikannya.

Bahasa ini juga meluaskan sokongan untuk ekspresi waktu kompilasi. Penutupan statik dan callable kelas pertama kini dibenarkan dalam ekspresi tetap, menjadikannya boleh digunakan dalam argumen atribut, nilai sifat lalai, dan konstanta kelas.

Peningkatan berkaitan prestasi termasuk pemegang kongsi cURL yang berterusan. Dengan curl_share_init_persistent(), pemegang kongsi dapat bertahan merentasi permintaan dan menggunakan semula data sambungan yang telah diinisialisasi sebelumnya, mengurangkan beban dalam operasi rangkaian berulang untuk aplikasi yang berjalan lama.

Dua fungsi pembantu baru, array_first() dan array_last(), menawarkan pengendalian yang lebih jelas untuk kes-kes biasa. Kedua-duanya mengembalikan null untuk tatasusunan kosong, yang memudahkan gabungan dengan operator null-coalescing dan menghapuskan keperluan untuk semakan kunci manual.

Perubahan tambahan merangkumi set ciri bahasa yang luas. Ralat maut kini termasuk jejak balik, atribut boleh menyasarkan pemalar, dan sifat statik menyokong keterlihatan tidak simetri.

Harta boleh ditandakan sebagai final melalui promosi harta konstruktor. Selain itu, PHP juga menambah kaedah DOM baru seperti getElementsByClassName() dan insertAdjacentHTML(), bersama-sama dengan fungsi utiliti baru seperti grapheme_levenshtein().

Akhirnya, penghapusan dalam PHP 8.5 termasuk penghapusan nama cast yang tidak kanonik, penghapusan operator backtick sebagai alias untuk shell_exec(), amaran untuk cast float-ke-int yang tidak sah, dan had penggunaan null sebagai offset array. Kaedah serialisasi lama __sleep() dan __wakeup() kini telah dihentikan sementara bagi mengutamakan __serialize() dan __unserialize().

Untuk maklumat lanjut mengenai semua perubahan dalam PHP 8.5, rujuk pengumuman rasmi pelepasan atau halaman ini.