PHP 8.3 release basa programming

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

Tambahkeun komentar