Uji alfa PHP 8.2 parantos dimimitian

Pelepasan alfa mimiti cabang anyar tina basa programming PHP 8.2 geus dibere. Pelepasan dijadwalkeun pikeun 24 Nopémber. Inovasi utama parantos sayogi pikeun nguji atanapi direncanakeun pikeun palaksanaan dina PHP 8.2:

  • jenis misah "palsu" jeung "null" geus ditambahkeun, nu bisa dipaké, contona, pikeun balik tanda parantosan kalawan kasalahan atawa hiji nilai kosong ku fungsi. Saméméhna, "palsu" jeung "null" ngan bisa dipaké ditéang jeung tipe séjén (Contona, "string | palsu"), tapi ayeuna maranéhna bisa dipaké misah: fungsi alwaysFalse (): palsu {balik palsu; }
  • Ditambahkeun kamampuan pikeun nyirian kelas salaku ngan ukur dibaca. Pasipatan dina kelas sapertos tiasa disetél ngan sakali, saatos éta henteu sayogi pikeun robih. Saméméhna, sipat kelas individu bisa ditandaan baca-hijina, tapi ayeuna anjeun bisa ngaktipkeun mode ieu pikeun sakabéh sipat kelas sakaligus. Nangtukeun bendera "baca wungkul" di tingkat kelas ogé meungpeuk tambahan dinamis sipat ka kelas. readonly kelas Post {fungsi publik __construct (string publik $ judul, Public Author $ pangarang,) {}} $ pos = Post anyar (/* ... */); $post->unknown = 'salah'; // Kasalahan: Teu bisa nyieun sipat dinamis Post:: $ kanyahoan
  • Kamampuhan pikeun nyiptakeun sipat sacara dinamis di kelas parantos dileungitkeun (sapertos "pos-> teu dipikanyaho" dina conto di luhur). Dina PHP 9.0, ngaksés sipat anu henteu didefinisikeun dina kelas bakal nyababkeun kasalahan (ErrorException). Kelas nu nyadiakeun __get na __set métode pikeun nyieun sipat, atawa sipat dinamis di stdClass bakal neruskeun dianggo unchanged, ngan karya implisit jeung sipat non-existent bakal dieureunkeun dina urutan ngajaga pamekar ti kasalahan disumputkeun. Pikeun ngajaga kodeu lami tiasa dianggo, atribut "#[AllowDynamicProperties]" diusulkeun, ngamungkinkeun panggunaan sipat dinamis.
  • Disadiakeun kamampuhan pikeun nyaring setelan sénsitip dina kaluaran renik tumpukan dina waktu kasalahan. Motong kaluar inpo nu tangtu bisa jadi diperlukeun nalika informasi ngeunaan kasalahan anu lumangsung otomatis dikirim ka ladenan pihak katilu nu ngalacak masalah jeung ngawartosan pamekar ngeunaan eta. Contona, anjeun tiasa ngaluarkeun parameter tina renik anu kalebet nami pangguna, kecap akses, sareng variabel lingkungan. test fungsi ($ foo, #[\SensitiveParameter] $sandi, $baz) {ngalungkeun Exception anyar ('Error'); } test ( 'foo', 'sandi', 'baz'); Kasalahan fatal: Uncaught Exception: Kasalahan dina test.php:8 Stack trace: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {utama} dialungkeun dina test.php on line 8
  • Kamampuhan pikeun ngagentos nilai-nilai variabel kana senar nganggo ekspresi "${var}" sareng ${(var)}" parantos dileungitkeun. Rojongan pikeun substitusi "{$var}" sareng "$var" anu biasa dianggo parantos dipikagaduh. Contona: "Halo {$dunya}"; OK "Halo $ dunya"; OK "Halo ${world}"; Deprecated: Ngagunakeun ${} dina string geus deprecated
  • Callables anu dirojong sawaréh dirojong anu tiasa disebat ngalangkungan "call_user_func ($ callable)", tapi henteu ngadukung nelepon dina bentuk "$ callable ()": "self:: method" "parent:: method" "static:: method" ["self", "metode"] ["parent", "metode"] ["static", "metode""] "Bar:"
  • Konversi kasus lokal-bebas dilaksanakeun. Fungsi kawas strtolower () jeung strtoupper () ayeuna salawasna ngarobah kasus karakter dina rentang ASCII, sakumaha nalika netepkeun Lokalisasi ka "C".

sumber: opennet.ru

Tambahkeun komentar