PHP 8.3 ukukhululwa kolwimi lwenkqubo

Emva konyaka wophuhliso, ukukhutshwa kolwimi lweprogram ye-PHP 8.3 kwaboniswa. Isebe elitsha liquka uluhlu lweempawu ezintsha, kunye neenguqu ezininzi eziphula ukuhambelana.

Utshintsho oluphambili kwi-PHP 8.3:

  • Ngexesha le-cloning yeklasi, kunokwenzeka ukuvuselela iipropati kunye nophawu "lokufunda kuphela". Iipropati ezifundeka ngokungaphezulu zivumelekile kuphela ngaphakathi kwi-"__clone" umsebenzi: iklasi yokufunda kuphela iPosi {umsebenzi kawonke-wonke __construct( public DateTime $createdAt, ) {} umsebenzi kawonke-wonke __clone() {$this->createdAt = new DateTime(); // ivunyelwe nangona ipropathi "createdAt" ifundwa kuphela. }}
  • Ukukwazi ukusebenzisa i-constants kunye nohlobo lwesalathisi kwiiklasi, iimpawu kunye nokubala zinikezelwe: iklasi Foo { const string BAR = 'baz'; }
  • Inkxaso eyongeziweyo yophawu "#[Override]", apho umphuhlisi anokwazisa itoliki ukuba indlela ephawulweyo ibeka ngaphezulu kwendlela ethile yomzali. Ukuba akukho kubhala ngaphezulu, itoliki iya kubonisa impazamo.
  • Ukuphathwa okutshintshiweyo kwamaxabiso angalunganga njengesalathiso soluhlu. Umzekelo, xa wongeza into enenombolo "-5" kuluhlu olungenanto kwaye ukongeza enye into, ngaphambili into yesibini ibigcinwe ngesalathiso "0", kodwa ukuqala kwinguqulo ye-PHP 8.3 iya kugcinwa ngesalathiso "-4" . uluhlu lwe-$ = []; $ uluhlu[-5] = 'a'; $uluhlu[] = 'b'; var_export (i-array ye-$); // Lwaluluhlu (-5 => 'a', 0 => 'b') // Yaba luluhlu (-5 => 'a', -4 => 'b')
  • Ukongezwa amandla okwenza iiklasi ezingaziwa kwimodi yokufunda kuphela: $ iklasi = iklasi entsha yokufunda kuphela {umsebenzi woluntu __construct ( umtya woluntu $ foo = 'bar', ) {}};
  • Yongeziwe json_validate () umsebenzi ukujonga ngokukhawuleza ukuba umtya ukwifomati ye-JSON ngaphandle kokwenza imisebenzi yokuguqula ikhowudi. json_validate(umtya $json, int $depth = 512, int $flags = 0): bool
  • Iindlela ezintsha zongezwa kwiklasi ye-Randomizer, ebonelela nge-API ephezulu yokuvelisa amanani e-pseudo-random kunye nokulandelelana: getBytesFromString yokuvelisa umtya wobungakanani obunikeziweyo, usebenzisa ngokulandelelana okungahleliweyo abalinganiswa abakhoyo komnye umtya; i-getFloat kunye ne-nextFloat ukuvelisa inombolo yenqaku elingenamkhethe eliwela phakathi koluhlu oluchaziweyo.
  • Ukongezwa ukukwazi ukubuyisela ii-consults usebenzisa i-syntax yeklasi eguqukayo: iklasi Foo { const BAR = 'bar'; } $igama = 'BAR'; // Ngaphambili, ukubuyisela i-BAR rhoqo, bekufuneka ufowunele rhoqo (Foo::iklasi. '::' . $igama); // Ngoku cacisa nje i-Foo::{$igama};
  • Isizukulwana esongeziweyo sangaphandle komntu (DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError) kwimeko yeengxaki ezivela kwimisebenzi esebenza ngemihla kunye nexesha.
  • Ukuphuculwa kokuphathwa kweempazamo ezenzeka ngexesha lokwahlulwa kwedatha elandelelanisiweyo kwi-unserialize() umsebenzi. Kwimeko yeengxaki, susa useri() ngoku ikhupha E_WARNING endaweni ye E_NOTICE.
  • Utshintsho lwenziwe kuluhlu () umsebenzi. Umkhethe uveliswa xa uzama ukudlula izinto, izixhobo okanye uluhlu lwezinto eziguquguqukayo ezichaza uluhlu lwemida, kunye naxa ukhankanya ixabiso elibi kwi-parameter yenyathelo le-$ okanye ixabiso elingachazwanga kuyo nayiphi na iparameter. Uluhlu lwamagama ngoku lunokuba nemveliso xa ukhankanya imitya endaweni yamanani (umzekelo, “uluhlu('5', 'z')").
  • Kutshintshwe isimilo seempawu ezineempawu ezingatshintshiyo, ezigqithisa iipropathi ezingatshintshiyo ezizuzwe kudidi lwabazali.
  • Iisetingi ezongeziweyo zokhuseleko lokuphuphuma kwesitaki. I-zend.max_allowed_stack_size kunye ne-zend.reserved_stack_size imiyalelo yongezwe kwifayile ye-ini, ichaza ubuninzi obuvunyelweyo kunye nobukhulu obugciniweyo. Inkqubo iya kungqubeka xa isondela ekudinweni kwesitaki, xa isitakhi sigcwele ngaphezulu kunomahluko phakathi kwe-zend.max_allowed_stack_size kunye ne-zend.reserved_stack_size (ukuphunyezwa kuya kumisa phambi kokuba kwenzeke impazamo yokwahlula). Ngokungagqibekanga, ixabiso lezend.max_allowed_stack_size limiselwe ku-0 (0-ubungakanani bumiselwa ngokuzenzekelayo; ukuvala umda, ungawuseta ku-1).
  • Kongezwe imisebenzi emitsha yePOSIX posix_sysconf(), posix_pathconf(), posix_fpathconf() kunye posix_eaccess().
  • Umsebenzi wemb_str_pad wongeziwe, ongumfuziselo we str_pad () umsebenzi womtya, oyilelwe ukusebenza ngokhowudo lwebhayithi ezininzi njenge UTF-8.
  • Ikuvumela ukuba udale ukuvalwa kwiindlela kwaye ugqithise iingxoxo ezinamagama kolu kuvalwa. Uvavanyo lwe-$ = Uvavanyo olutsha (); $ ukuvalwa = $ test-> umlingo (…); Ukuvalwa kwe-$(a: 'molo', b: 'ihlabathi');
  • Ukuziphatha okutshintshileyo xa kusingathwa ukubonakala kwezinto ezingaguqukiyo kujongano. ujongano I { public const FOO = 'foo'; } izixhobo zodidi C I { private const FOO = 'foo'; }
  • Ubunakho be-array_sum(), i-array_product(), posix_getrlimit(), gc_status(), class_alias(), mysqli_poll(), array_pad() kunye neproc_get_status() imisebenzi yandisiwe.
  • Ukukwazi ukudlulisa ixabiso elibi $widths ku mb_strimwidth() liyehlisiwe. I-NumberFormatter::TYPE_CURRENCY rhoqo isusiwe. Inkxaso yokubiza i-ldap_connect() umsebenzi oneparameters ezimbini i-$host kunye ne-port ye-$ iye yanqunyanyiswa. Useto lwe-opcache.consistency_checks lususiwe.

umthombo: opennet.ru

Thenga ukusingathwa okuthembekileyo kwiindawo ezinokhuseleko lweDDoS, iiseva zeVPS VDS 🔥 Thenga ukusingathwa kwewebhusayithi okuthembekileyo ngokhuseleko lwe-DDoS, iiseva zeVPS VDS | ProHoster