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