Sanggeus sataun pangwangunan, sékrési basa programming PHP 8.3 dibere. Cabang anyar ngawengku runtuyan fitur anyar, kitu ogé sababaraha parobahan nu megatkeun kasaluyuan.
Parobahan konci dina PHP 8.3:
- Salila kloning kelas, kasebut nyaéta dimungkinkeun pikeun reinitialize sipat jeung atribut "readonly". Overriding sipat readonly diwenangkeun ukur di jero "__clone" fungsi: readonly kelas Post {fungsi publik __construct (DateTime publik $ createatedAt,) {} fungsi publik __clone () {$ this->createdAt = DateTime anyar (); // diwenangkeun sanajan sipat "createdAt" nyaeta baca-hijina. }}
- Kamampuhan ngagunakeun konstanta kalawan indikasi tipe di kelas, Tret na enumerations geus disadiakeun: kelas Foo {const string BAR = 'baz'; }
- Ditambahkeun dukungan pikeun atribut "#[Override]", dimana pamekar tiasa nginpokeun ka juru yén metode anu ditandaan nimpa sababaraha metode indungna. Mun euweuh override, juru bakal nembongkeun kasalahan.
- Ngarobah penanganan nilai négatip salaku indéks Asép Sunandar Sunarya. Contona, nalika nambahkeun unsur kalawan angka "-5" ka Asép Sunandar Sunarya kosong tur nambahkeun unsur sejen, saméméhna unsur kadua disimpen kalayan indéks "0", tapi mimitian ti versi PHP 8.3 bakal disimpen ku indéks "-4". . $array = []; $array[-5] = 'a'; $array[] = 'b'; var_export ($ array); // Éta array (-5 => 'a', 0 => 'b') // Janten array (-5 => 'a', -4 => 'b')
- Ditambahkeun kamampuhan pikeun nyieun kelas anonim dina mode baca wungkul: $class = kelas readonly anyar {fungsi publik __construct (string publik $ foo = 'bar',) {}};
- Ditambahkeun fungsi json_validate () pikeun pariksa gancang upami senar aya dina format JSON tanpa ngalakukeun operasi decoding. json_validate(string $json, int $depth = 512, int $flags = 0): bool
- Métode anyar geus ditambahkeun kana kelas Randomizer, nu nyadiakeun API-tingkat tinggi pikeun ngahasilkeun angka pseudo-acak jeung runtuyan: getBytesFromString pikeun generating string of a ukuran tinangtu, ngagunakeun dina urutan acak karakter hadir dina string sejen; getFloat sareng nextFloat pikeun ngahasilkeun angka floating point acak anu aya dina kisaran anu ditangtukeun.
- Ditambahkeun kamampuhan pikeun meunangkeun konstanta maké sintaksis kelas dinamis: kelas Foo {const BAR = 'bar'; } $ngaran = 'BAR'; // Saméméhna, pikeun meunangkeun konstanta BAR, anjeun kungsi nelepon konstan (Foo:: kelas. '::'. $ ngaran); // Ayeuna ngan tangtukeun Foo::{$name};
- Ditambahkeun generasi pengecualian individu (DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError) bisi aya masalah anu timbul dina operasi damel sareng kaping sareng waktos.
- Ningkatkeun penanganan kasalahan anu lumangsung salila parsing data serialized dina unserialize () fungsi. Upami aya masalah, unserialize () ayeuna ngaluarkeun E_WARNING tinimbang E_NOTICE.
- Parobahan geus dijieun pikeun rentang () fungsi. Pangecualian dibangkitkeun nalika nyobian ngalangkungan objék, sumberdaya atanapi arrays dina variabel anu nangtukeun wates rentang, kitu ogé nalika nangtukeun nilai négatip dina parameter $step atanapi nilai anu teu ditangtukeun dina parameter naon waé. Daptar karakter ayeuna tiasa janten kaluaran nalika netepkeun string tinimbang nomer (contona, "rentang ('5', 'z')").
- Ngarobah kabiasaan sipat mibanda sipat statik, nu ayeuna override sipat statik diwariskeun ti kelas indungna.
- Setelan ditambahkeun pikeun panyalindungan tumpukan mudal. The zend.max_allowed_stack_size na zend.reserved_stack_size directives geus ditambahkeun kana file ini, nangtukeun maksimum nu diwenangkeun tur ditangtayungan ukuran tumpukan. program bakal ngadat nalika approaching kacapean tumpukan, nalika tumpukan pinuh leuwih ti bédana antara zend.max_allowed_stack_size na zend.reserved_stack_size (palaksanaan bakal eureun saméméh hiji sesar segmentation lumangsung). Sacara standar, nilai zend.max_allowed_stack_size disetel ka 0 (0-ukuranana ditangtukeun otomatis; pikeun nganonaktipkeun watesan, Anjeun tiasa nyetel -1).
- Ditambahkeun fungsi POSIX anyar posix_sysconf (), posix_pathconf (), posix_fpathconf () sarta posix_eaccess ().
- Fungsi mb_str_pad geus ditambahkeun, nu mangrupa analog tina str_pad () fungsi string, dirancang pikeun gawé bareng encodings multi-bait kayaning UTF-8.
- Ngidinan anjeun nyiptakeun panutupan tina metode sareng ngalebetkeun argumen anu namina kana panutupanana. $test = anyar Test(); $panutupan = $test->magic(…); $panutupan (a: 'halo', b: 'dunya');
- Parobihan paripolah nalika nanganan pisibilitas konstanta dina antarmuka. panganteur I {const publik FOO = 'foo'; } kelas C implements I {const swasta FOO = 'foo'; }
- Kamampuhan array_sum (), array_product (), posix_getrlimit (), gc_status (), class_alias (), mysqli_poll (), array_pad () jeung proc_get_status () fungsi geus dimekarkeun.
- Kamampuhan pikeun ngalirkeun nilai négatip $ lebar ka mb_strimwidth () geus deprecated. The NumberFormatter:: TYPE_CURRENCY konstanta geus dihapus. Rojongan pikeun nelepon pungsi ldap_connect () dua parameter $ host na $ port geus dieureunkeun. Setelan opcache.consistency_checks geus dihapus.
sumber: opennet.ru