Itusilẹ ti ede siseto PHP 8.3

Lẹhin ọdun kan ti idagbasoke, itusilẹ ti ede siseto PHP 8.3 ti gbekalẹ. Ẹka tuntun pẹlu lẹsẹsẹ awọn ẹya tuntun, ati ọpọlọpọ awọn ayipada ti o fọ ibamu.

Awọn ayipada bọtini ni PHP 8.3:

  • Lakoko cloning kilasi, o ṣee ṣe lati tun bẹrẹ awọn ohun-ini pẹlu ẹya “kika nikan”. Yiyọ awọn ohun-ini kika nikan ni a gba laaye ni inu iṣẹ “__clone” nikan: ifiweranṣẹ kilasi kika nikan {iṣẹ gbogbogbo __construct (DateTime ti gbogbo eniyan $createdAt, ) {} iṣẹ gbogbo eniyan __clone () {$this->createdAt = DateTime tuntun (); // gba laaye botilẹjẹpe ohun-ini “createdAt” jẹ kika-nikan. }}
  • Agbara lati lo awọn iduro pẹlu iru itọkasi ni awọn kilasi, awọn abuda ati awọn iṣiro ti pese: kilasi Foo {const string BAR = 'baz'; }
  • Atilẹyin ti a ṣafikun fun “#[Ipari]” abuda, pẹlu eyiti olupilẹṣẹ le sọ fun onitumọ pe ọna ti o samisi bori diẹ ninu ọna obi. Ti ko ba si ifasilẹ, onitumọ yoo ṣe afihan aṣiṣe kan.
  • Iyipada mimu ti awọn iye odi bi atọka orun. Fun apẹẹrẹ, nigba fifi nkan kan kun pẹlu nọmba “-5” si opo ṣofo ati fifi eroja miiran kun, ni iṣaaju eroja keji ti fipamọ pẹlu atọka “0”, ṣugbọn bẹrẹ lati ẹya PHP 8.3 yoo wa ni fipamọ pẹlu atọka “-4” . $array = []; $array[-5] = 'a'; $array[] = 'b'; var_export ($ orun); // Was array (-5 => 'a', 0 => 'b') // Di àkópọ̀ (-5 => 'a', -4 => 'b')
  • Ṣafikun agbara lati ṣẹda awọn kilasi ailorukọ ni ipo kika-nikan: $class = kilasi kika titun nikan {iṣẹ gbogbo eniyan __construct( okun gbangba $foo = 'bar', ) {}};
  • Ṣafikun iṣẹ json_validate() lati yara ṣayẹwo boya okun kan wa ni ọna kika JSON laisi ṣiṣe awọn iṣẹ ṣiṣe iyipada. json_validate (okun $ json, int $ ijinle = 512, int $ flags = 0): bool
  • Awọn ọna tuntun ni a ti ṣafikun si kilasi Randomizer, eyiti o pese API ti o ga-giga fun ṣiṣẹda awọn nọmba airotẹlẹ-ID ati awọn ilana: getBytesFromString fun ṣiṣẹda okun kan ti iwọn ti a fun, ni lilo laileto awọn ohun kikọ ti o wa ni okun miiran; getFloat ati nextFloat lati ṣe ina nọmba aaye lilefoofo loju omi laileto ti o ṣubu laarin sakani pàtó kan.
  • Ṣafikun agbara lati gba awọn alakan pada nipa lilo sintasi kilasi ti o ni agbara: kilasi Foo {const BAR = 'bar'; } $orukọ = 'BAR'; // Ni iṣaaju, lati gba ibakan BAR pada, o ni lati pe igbagbogbo (Foo :: kilasi . '::' . $name); // Bayi kan pato Foo: {$name};
  • Iran ti a ṣafikun ti awọn imukuro kọọkan (DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError) ni ọran ti awọn iṣoro ti o dide ni awọn iṣẹ ṣiṣe pẹlu awọn ọjọ ati akoko.
  • Imudara ilọsiwaju ti awọn aṣiṣe ti o waye lakoko sisọ awọn data serialized ni iṣẹ unserialize (). Ni ọran ti awọn iṣoro, unserialize() ni bayi yoo jade E_WARNING dipo E_NOTICE.
  • A ti ṣe awọn ayipada si iṣẹ sakani (). Iyatọ jẹ ipilẹṣẹ nigbati o n gbiyanju lati kọja awọn nkan, awọn orisun tabi awọn eto ni awọn oniyipada ti o ṣalaye awọn aala sakani, bakanna bi nigba ti o n ṣalaye iye odi ninu paramita igbese $ tabi iye aisọye ni eyikeyi paramita. Atokọ awọn ohun kikọ le ti jade ni bayi nigbati o ba n ṣalaye awọn gbolohun ọrọ dipo awọn nọmba (fun apẹẹrẹ, “ibiti ('5', 'z'))).
  • Yi ihuwasi ti awọn abuda pada pẹlu awọn ohun-ini aimi, eyiti o dojuiwọn awọn ohun-ini aimi ti a jogun lati kilasi obi.
  • Awọn eto ti a ṣafikun fun idabobo aponsedanu akopọ. Zend.max_allowed_stack_size ati awọn itọsọna zend.reserved_stack_size ti jẹ afikun si faili ini, ti n ṣalaye iwọn ti o gba laaye ati iwọn akopọ ti o wa ni ipamọ. Eto naa yoo jamba nigbati o ba sunmọ itusilẹ akopọ, nigbati akopọ ba kun diẹ sii ju iyatọ laarin zend.max_allowed_stack_size ati zend.reserved_stack_size (iṣiṣẹ yoo da duro ṣaaju aṣiṣe ipin kan waye). Nipa aiyipada, iye zend.max_allowed_stack_size ti ṣeto si 0 (0-iwọn ti pinnu laifọwọyi; lati mu idiwọn naa kuro, o le ṣeto si -1).
  • Ti ṣafikun awọn iṣẹ POSIX tuntun posix_sysconf (), posix_pathconf (), posix_fpathconf () ati posix_eaccess ().
  • A ti ṣafikun iṣẹ mb_str_pad, eyiti o jẹ afọwọṣe ti iṣẹ okun str_pad (), ti a ṣe apẹrẹ lati ṣiṣẹ pẹlu awọn koodu baiti pupọ gẹgẹbi UTF-8.
  • Gba ọ laaye lati ṣẹda awọn pipade lati awọn ọna ati kọja awọn ariyanjiyan ti a darukọ si awọn pipade yẹn. $ igbeyewo = titun igbeyewo (); $ pipade = $ test-> idan (...); $ pipade (a: 'hello', b: 'aye');
  • Iyipada ihuwasi nigba mimu hihan ti awọn ibakan ni awọn atọkun. wiwo I {public const FOO = 'foo'; } kilasi C ohun elo I { ikọkọ const FOO = 'foo'; }
  • Awọn agbara ti array_sum (), array_product (), posix_getrlimit (), gc_status (), class_alias (), mysqli_poll (), array_pad () ati awọn iṣẹ proc_get_status () ti gbooro sii.
  • Agbara lati kọja iye awọn iwọn $ odi si mb_strimwidth () ti jẹ idinku. NọmbaFormatter :: TYPE_CURRENCY ti yọkuro. Atilẹyin fun pipe iṣẹ ldap_connect () pẹlu awọn aye meji $ ogun ati ibudo $ ti dawọ duro. Eto opcache.consistency_checks ti yọkuro.

orisun: opennet.ru

Fi ọrọìwòye kun