Kutulutsidwa kwa chilankhulo cha pulogalamu ya PHP 8.3

Pambuyo pa chaka cha chitukuko, kutulutsidwa kwa chinenero cha pulogalamu ya PHP 8.3 kunaperekedwa. Nthambi yatsopanoyi ili ndi mndandanda wazinthu zatsopano, komanso zosintha zingapo zomwe zimasokoneza kugwirizanitsa.

Zosintha zazikulu mu PHP 8.3:

  • Panthawi yopangira kalasi, ndizotheka kuyambiranso katundu ndi "readonly" chikhalidwe. Kupitilira zinthu zowerengera zokha kumaloledwa mkati mwa "__clone" ntchito: kalasi yokhayokha Post {ntchito yapagulu __construct( public DateTime $createdAt, ) {} ntchito yapagulu __clone() {$this->createdAt = new DateTime(); // amaloledwa ngakhale katundu wa "createdAt" amawerengedwa-okha. }}
  • Kuthekera kogwiritsa ntchito zokhazikika zokhala ndi chizindikiritso chamtundu m'makalasi, mikhalidwe ndi zowerengera zaperekedwa: kalasi Foo { const string BAR = 'baz'; }
  • Thandizo lowonjezera la "#[Override]", lomwe wopanga angadziwitse womasulira kuti njira yolembedwayo iposa njira ya makolo. Ngati palibe chowonjezera, womasulira akuwonetsa cholakwika.
  • Kusintha kwa machitidwe olakwika ngati mndandanda wamagulu. Mwachitsanzo, powonjezera chinthu chokhala ndi nambala "-5" ku gulu lopanda kanthu ndikuwonjezera chinthu china, poyamba chinthu chachiwiri chinasungidwa ndi ndondomeko "0", koma kuyambira pa PHP 8.3 chidzasungidwa ndi index "-4" . $ gulu = []; $rray[-5] = 'a'; $array[] = 'b'; var_export ($ gulu); // Anali ndi magulu (-5 => 'a', 0 => 'b') // Anakhala gulu (-5 => 'a', -4 => 'b')
  • Anawonjezera luso lopanga makalasi osadziwika mumayendedwe owerengera okha: $class = kalasi yatsopano yowerengera yokha {ntchito zapagulu __construct( public string $foo = 'bar', ) {}};
  • Onjezani json_validate() ntchito kuti muwone mwachangu ngati chingwe chili mumtundu wa JSON osagwira ntchito yojambula. json_validate(chingwe $json, int $depth = 512, int $flags = 0): bool
  • Njira zatsopano zawonjezeredwa ku kalasi ya Randomizer, yomwe imapereka API yapamwamba kwambiri yopangira manambala achinyengo-osawerengeka ndi zotsatizana: getBytesFromString popanga chingwe cha kukula kwake, pogwiritsa ntchito mwachisawawa zilembo zomwe zilipo mu chingwe china; getFloat ndi nextFloat kuti apange nambala yoyandama mwachisawawa yomwe imagwera mumtundu womwe watchulidwa.
  • Anawonjezera kuthekera kopeza zosinthika pogwiritsa ntchito mawu osinthika amtundu: kalasi Foo {const BAR = 'bar'; } $name = 'BAR'; // M'mbuyomu, kuti mutenge BAR yosasinthasintha, mumayenera kuyimba nthawi zonse (Foo::kalasi. '::' . $name); // Tsopano tchulani Foo::{$name};
  • M'badwo wowonjezera wa zopatula payekhapayekha (DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError) pakakhala zovuta zomwe zingabwere pogwira ntchito ndi madeti ndi nthawi.
  • Kuwongolera kwabwino kwa zolakwika zomwe zimachitika pakusandutsa deta yosasinthika mu unserialize() ntchito. Pakavuta, unserialize() tsopano itulutsa E_WARNING m'malo mwa E_NOTICE.
  • Zosintha zapangidwa ku range() ntchito. Kupatulapo kumapangidwa poyesa kudutsa zinthu, zothandizira kapena magulu osiyanasiyana omwe amatanthauzira malire osiyanasiyana, komanso pofotokoza zamtengo wapatali mu $ step parameter kapena mtengo wosadziwika mu parameter iliyonse. Mndandanda wa zilembo ukhoza kutulutsidwa potchula zingwe m'malo mwa manambala (mwachitsanzo, "range('5', 'z')").
  • Anasintha machitidwe okhala ndi mawonekedwe osasunthika, omwe tsopano amaposa machitidwe osasunthika omwe adatengera kuchokera ku gulu la makolo.
  • Zokonda zowonjezeredwa zachitetezo cha stack kusefukira. Maupangiri a zend.max_allowed_stack_size ndi zend.reserved_stack_size awonjezedwa ku fayilo ya ini, kutanthauzira kukula kololedwa ndi kosungidwa. Pulogalamuyi idzawonongeka pamene ikuyandikira kutopa kwa stack, pamene stack ili yodzaza kuposa kusiyana pakati pa zend.max_allowed_stack_size ndi zend.reserved_stack_size (kuphedwa kudzayima chisanachitike vuto la magawo). Mwachikhazikitso, mtengo wa zend.max_allowed_stack_size wayikidwa ku 0 (0-kukula kwake kumatsimikiziridwa kokha; kuti mulepheretse malire, mukhoza kuyika -1).
  • Onjezani ntchito zatsopano za POSIX posix_sysconf(), posix_pathconf(), posix_fpathconf() ndi posix_eaccess().
  • Ntchito ya mb_str_pad yawonjezedwa, yomwe ndi analogue ya str_pad () chingwe ntchito, yopangidwa kuti igwire ntchito ndi ma encodings ambiri monga UTF-8.
  • Imakulolani kuti mupange zotsekera kuchokera ku njira ndikudutsa mikangano yotchulidwa mpaka kutsekako. $ mayeso = Mayeso atsopano (); $ kutsekedwa = $ kuyesa-> matsenga (…); $kutseka(a: 'hello', b: 'dziko');
  • Khalidwe losinthika pogwira kuwonekera kwa zokhazikika muzolumikizirana. mawonekedwe I {public const FOO = 'foo'; } zida za kalasi C I {private const FOO = 'foo'; }
  • Kuthekera kwa array_sum(), array_product(), posix_getrlimit(), gc_status(), class_alias(), mysqli_poll(), array_pad() ndi proc_get_status() ntchito zawonjezedwa.
  • Kutha kudutsa mtengo woipa wa $widths kupita ku mb_strimwidth() kwachotsedwa. NambalaFormatter::TYPE_CURRENCY yosasintha yachotsedwa. Thandizo loyimba ldap_connect() ntchito yokhala ndi magawo awiri $host ndi $port yatha. Zokonda za opcache.consistency_checks zachotsedwa.

Source: opennet.ru

Kuwonjezera ndemanga