Sgaoileadh cànain prògramaidh PHP 8.3

Às deidh bliadhna de leasachadh, chaidh foillseachadh cànan prògramadh PHP 8.3 a thaisbeanadh. Tha am meur ùr a’ toirt a-steach sreath de fheartan ùra, a bharrachd air grunn atharrachaidhean a bhriseas co-chòrdalachd.

Prìomh atharrachaidhean ann am PHP 8.3:

  • Rè clonadh clas, tha e comasach togalaichean ath-thòiseachadh leis a’ fheart “readonly”. Chan fhaodar a dhol thairis air togalaichean leughaidh a-mhàin ach taobh a-staigh an gnìomh “__clone”: clas leughaidh a-mhàin Post { gnìomh poblach __construct( poblach DateTime $createdAt, ) {} gnìomh poblach __clone () { $this->createdAt = DateTime ùr (); // ceadaichte ged a tha an togalach “createdAt” ri leughadh a-mhàin. } }
  • Chaidh comas air taisbeanairean a chleachdadh le comharra-seòrsa ann an clasaichean, feartan agus àireamhachd a thoirt seachad: clas Foo { const string BAR = 'baz'; }
  • Taic a bharrachd don fheart “#[Override]”, leis an urrainn don leasaiche innse don eadar-theangair gu bheil an dòigh comharraichte a’ dol thairis air dòigh pàrant air choireigin. Mura h-eil cus ann, seallaidh an t-eadar-theangair mearachd.
  • Làimhseachadh atharraichte air luachan àicheil mar chlàr-amais array. Mar eisimpleir, nuair a chuireas tu eileamaid leis an àireamh “-5” ri raon falamh agus a ’cur eileamaid eile ris, roimhe seo chaidh an dàrna eileamaid a shàbhaladh le clàr-amais“ 0 ”, ach a’ tòiseachadh bho dhreach PHP 8.3 thèid a shàbhaladh le clàr-amais “-4” . $array = []; $array[-5] = 'a'; $array[] = 'b'; var_export ($ array); // Bha e na raon (-5 => 'a', 0 => 'b') // Thàinig e gu bhith na raon (-5 => 'a', -4 => 'b')
  • Chuir sinn ris a’ chomas air clasaichean gun urra a chruthachadh sa mhodh leughaidh a-mhàin: $class = clas leughaidh a-mhàin ùr { gnìomh poblach __construct( sreang poblach $ foo = ‘bàr’, ) {} };
  • Gnìomh json_validate() air a chur ris gus dèanamh cinnteach gu sgiobalta a bheil sreang ann an cruth JSON gun a bhith a’ coileanadh gnìomhachd dì-chòdaidh. json_validate(sreang $ json, int $depth = 512, int $flags = 0): bool
  • Chaidh dòighean ùra a chur ris a’ chlas Randomizer, a tha a’ toirt seachad API àrd-ìre airson àireamhan agus sreathan meallta a ghineadh: getBytesFromString airson sreang de mheud sònraichte a ghineadh, a’ cleachdadh nan caractaran a tha an làthair ann an sreath eile ann an òrdugh air thuaiream; getFloat agus nextFloat gus àireamh puing-fleòdraidh air thuaiream a ghineadh a tha taobh a-staigh an raon ainmichte.
  • Chuir sinn ris a’ chomas air cuibhlichean fhaighinn air ais a’ cleachdadh co-chòrdadh clas fiùghantach: clas Foo { const BAR = ‘bar’; } $name = 'BAR'; // Roimhe sin, gus an seasmhach BAR fhaighinn air ais, dh'fheumadh tu seasmhach a ghairm (Foo::class . '::' . $name); // A-nis dìreach sònraich Foo::{$name};
  • Ginealach a bharrachd de eisgeachdan fa leth (DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError) gun fhios nach èirich duilgheadasan ann an gnìomhachd ag obair le cinn-latha agus àm.
  • Làimhseachadh nas fheàrr air mearachdan a thachras nuair a thathar a’ parsadh dàta sreathach anns a’ ghnìomh unserialize(). Ma tha duilgheadasan ann, cuir unserialize () a-nis a-mach E_WARNING an àite E_NOTICE.
  • Chaidh atharrachaidhean a dhèanamh air an raon () gnìomh. Bithear a’ cruthachadh eisgeachd nuair a thathar a’ feuchainn ri nithean, goireasan no rèitichean a thoirt seachad ann an caochladairean a tha a’ mìneachadh crìochan raoin, a bharrachd air nuair a thathar a’ sònrachadh luach àicheil ann am paramadair $step no luach neo-mhìnichte ann am paramadair sam bith. Faodar liosta de charactaran a thoirt a-mach a-nis nuair a bhios tu a’ sònrachadh sreangan an àite àireamhan (mar eisimpleir, “raon (’5’, ‘z’) ).
  • Dh’ atharraich giùlan feartan le feartan statach, a tha a-nis a’ dol thairis air togalaichean statach a fhuair iad bhon chlas phàrant.
  • Suidhichidhean a bharrachd airson dìon thar-shruth cruachan. Chaidh na stiùiridhean zend.max_allowed_stack_size agus zend.reserved_stack_size a chur ris an fhaidhle ini, a’ mìneachadh meud an stac as àirde a tha ceadaichte agus glèidhte. Tuitidh am prògram nuair a thig e faisg air sgàineadh stac, nuair a bhios an stac làn nas motha na an diofar eadar zend.max_allowed_stack_size agus zend.reserved_stack_size (stadaidh an coileanadh mus tachair locht sgaraidh). Gu gnàthach, tha an luach zend.max_allowed_stack_size air a shuidheachadh gu 0 (0 - tha am meud air a dhearbhadh gu fèin-ghluasadach; gus an cuingealachadh a chuir dheth, faodaidh tu a shuidheachadh gu -1).
  • Chaidh gnìomhan POSIX ùra a chur ris posix_sysconf (), posix_pathconf (), posix_fpathconf () agus posix_eaccess ().
  • Chaidh an gnìomh mb_str_pad a chur ris, a tha na analogue den ghnìomh sreang str_pad(), air a dhealbhadh gus obrachadh le còdachadh ioma-baidht leithid UTF-8.
  • A’ leigeil leat dùnadh a chruthachadh bho dhòighean-obrach agus argamaidean ainmichte a thoirt seachad gu na dùnadh sin. $test = Deuchainn ùr(); $closure = $test->magic(…); $closure(a: 'hello', b: 'saoghal');
  • Giùlan atharraichte nuair a bhios tu a’ làimhseachadh faicsinneachd seasmhach ann an eadar-aghaidh. eadar-aghaidh I { public const FOO = 'foo'; } clas C a' cur an gnìomh I { private const FOO = 'foo'; }
  • Chaidh comasan nan gnìomhan array_sum (), array_product (), posix_getrlimit (), gc_status (), class_alias (), mysqli_poll (), array_pad () agus proc_get_status () a leudachadh.
  • Chan eil an comas air luach $widths àicheil a thoirt seachad gu mb_strimwidth() air a mholadh. Chaidh an seasmhach àireamh::TYPE_CURRENCY seasmhach a thoirt air falbh. Chaidh stad a chuir air taic airson an gnìomh ldap_connect() a ghairm le dà pharamadair $ host agus $port. Chaidh an suidheachadh opcache.consistency_checks a thoirt air falbh.

Source: fosgailtenet.ru

Cuir beachd ann