Te tukunga o te PHP 8.3 reo hotaka

I muri i te tau o te whakawhanaketanga, ka whakaatuhia te whakaputanga o te PHP 8.3 reo whakahōtaka. Kei roto i te peka hou he raupapa o nga ahuatanga hou, me te maha o nga huringa ka pakaru te hototahi.

Nga huringa matua i roto i te PHP 8.3:

  • I roto i te karaehe karaehe, ka taea te whakaara ano i nga taonga me te huanga "panui anake". Ko te whakakore i nga taonga panui anake ka whakaaetia ki roto noa i te mahi "__clone": panui anake te akomanga Post { mahi a te iwi __build( public DateTime $createdAt, ) {} public function __clone() { $this->createdAt = new DateTime(); // whakaaetia ahakoa he panui-anake te taonga "createdAt". }}
  • Ko te kaha ki te whakamahi i nga taumau me te tohu momo i roto i nga karaehe, nga ahuatanga me nga tatauranga kua whakaratohia: class Foo { const string BAR = 'baz'; }
  • He tautoko taapiri mo te huanga "#[Tukua]", ka taea e te kaiwhakawhanake te whakamohio ki te kaiwhakamaori ko te tikanga kua tohua ka takahia etahi tikanga matua. Mena karekau he takahi, ka whakaatu te kaiwhakamaori he hapa.
  • Hurihia te whakahaeretanga o nga uara kino hei taurangi hurangi. Hei tauira, i te taapiri i tetahi huānga me te nama "-5" ki te huinga kau me te taapiri i tetahi atu huānga, i mua i tiakina te huānga tuarua ki te taupū "0", engari ka timata mai i te putanga PHP 8.3 ka tiakina ki te taupū "-4" . $array = []; $array[-5] = 'a'; $array[] = 'b'; var_export($array); // He raupapa (-5 => 'a', 0 => 'b') // Kua noho hei huānga (-5 => 'a', -4 => 'b')
  • Kua taapirihia te kaha ki te hanga karaehe ingoamuna ki te aratau panui-anake: $class = akomanga panui-anake hou { mahi a-iwi __build( aho tūmatanui $foo = 'pa', ) {} };
  • Kua taapirihia te mahi json_validate() kia tere tirohia mena kei te whakatakotoranga JSON tetahi aho me te kore e mahi i nga mahi wetewete. json_validate(string $json, int $depth = 512, int $flags = 0): bool
  • Kua taapirihia nga tikanga hou ki te karaehe Randomizer, e whakarato ana i te API taumata-tiketike mo te whakaputa i nga tau pseudo-tupurangi me nga raupapa: getBytesFromString mo te whakaputa i te aho o te rahi kua tohua, ma te whakamahi i te raupapa matapōkere i nga tohu kei roto i tetahi atu aho; getFloat me nextFloat ki te whakaputa i te tau ira maanu matapōkere ka taka ki roto i te awhe kua tohua.
  • I taapirihia te kaha ki te tiki mai i nga taumau ma te whakamahi i te wetereo o te karaehe hihiri: class Foo { const BAR = 'bar'; } $ingoa = 'BAR'; // I mua, ki te tiki mai i te taumau BAR, me waea koe ki tonu(Foo::class . '::' . $name); // Inaianei tohua Foo::{$name};
  • Kua taapirihia te whakatipuranga o nga tuunga takitahi (DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError) mena ka puta nga raruraru i roto i nga mahi e mahi ana me nga ra me te wa.
  • He pai ake te whakahaere i nga hapa ka puta i te wa e poroporoaki ai nga raraunga raupapa i roto i te mahi unserialize(). Mena he raru, unserialize() ka tukuna E_WARNING hei utu mo E_NOTICE.
  • Kua whakarereketia te mahi awhe(). Ka puta he okotahi i te wa e ngana ana ki te tuku ahanoa, rauemi, huranga ranei i roto i nga taurangi e tautuhi ana i nga rohenga awhe, tae atu ki te wa e tohu ana i te uara toraro i te tawhā $step, i te uara kore tautuhi ranei i tetahi tawhā. Ka taea te whakaputa i te rarangi o nga tohu ina tauwhāitihia nga aho hei tauira, "awhe('5', 'z')").
  • I huri i te whanonga o nga ahuatanga me nga ahuatanga pateko, e takahia ana i naianei nga ahuatanga pateko i tuku iho mai i te akomanga matua.
  • Kua taapirihia nga tautuhinga mo te whakamarumaru o te waipuke. Ko nga tohutohu zend.max_allowed_stack_size me te zend.reserved_stack_size kua taapirihia ki te konae ini, e tautuhi ana i te rahi o te puranga kua whakaaetia me te rahi kua rahuitia. Ka pakaru te hotaka ina tata ki te ruha o te puranga, ina kua ki tonu te puranga i te rereketanga i waenga i te zend.max_allowed_stack_size me te zend.reserved_stack_size (ka mutu te mahi i mua i te puta mai o te he o te wehenga). Ma te taunoa, ka tautuhia te uara zend.max_allowed_stack_size ki te 0 (0—ka whakatau aunoatia te rahi; ki te whakakore i te herenga, ka taea e koe te tautuhi ki -1).
  • Kua taapirihia nga mahi POSIX hou posix_sysconf(), posix_pathconf(), posix_fpathconf() me posix_eaccess().
  • Kua taapirihia te mahi mb_str_pad, he tairitenga o te taumahi aho str_pad(), i hangaia hei mahi me nga whakawaehere paita-maha penei i te UTF-8.
  • Ka taea e koe te hanga katinga mai i nga tikanga me te tuku tohenga whakaingoatia ki aua katinga. $whakamatautau = new Test(); $closure = $test->magic(…); $closure(a: 'kia ora', b: 'ao');
  • Hurihia te whanonga i te wa e whakahaere ana i te whakakitenga o nga taumau i roto i nga atanga. atanga I { public const FOO = 'foo'; } class C ka whakatinana I { private const FOO = 'foo'; }
  • Ko nga kaha o te array_sum(), array_product(), posix_getrlimit(), gc_status(), class_alias(), mysqli_poll(), array_pad() me te proc_get_status() kua whakawhānuihia.
  • Ko te kaha ki te tuku uara $widths kino ki te mb_strimwidth() kua whakakorehia. Ko te NumberFormatter::TYPE_CURRENCY pūmau kua tangohia. Tautoko mo te waea i te mahi ldap_connect() me nga tawhā e rua $host me te $port kua whakamutua. Kua tangohia te tautuhinga opcache.consistency_checks.

Source: opennet.ru

Tāpiri i te kōrero