Sakin harshen shirye-shirye na PHP 8.2

Bayan shekara guda na ci gaba, an gabatar da sakin harshen shirye-shirye na PHP 8.2. Sabon reshe ya ƙunshi jerin sabbin abubuwa, da kuma canje-canje da yawa waɗanda ke karya daidaituwa.

Mahimmin haɓakawa a cikin PHP 8.2:

  • Ƙara ikon yiwa aji a matsayin karanta-kawai. Za'a iya saita kaddarorin a cikin irin waɗannan azuzuwan sau ɗaya kawai, bayan haka ba za su sami canji ba. A baya, ana iya yiwa kaddarorin aji ɗaya alama akan karantawa kawai, amma yanzu zaku iya kunna wannan yanayin don duk kadarorin aji lokaci guda. Ƙayyadaddun tutar "karanta kawai" a matakin aji kuma yana toshe ƙaƙƙarfan ƙarar kaddarorin ajin. Buga aji kawai karatu {aikin jama'a __ ginawa (lambar jama'a $ take, mawallafin jama'a $ marubuci, ) {}} $post = sabon Post(/* … */); $post->unknown = 'ba daidai ba'; // Kuskure: Ba za a iya ƙirƙira kaddarori mai ƙarfi Post :: $ ba a sani ba
  • An ƙara nau'ikan nau'ikan “gaskiya”, “ƙarya” da “marasa”, waɗanda za su iya ɗaukar ƙimar inganci guda ɗaya kawai kuma ana amfani da su, alal misali, don dawo da aiki tare da tutar ƙarewar kuskure ko ƙima mara komai. A baya can, "gaskiya", "karya" da "rauni" kawai za a iya amfani da su tare da wasu nau'ikan (misali, "string | arya"), amma yanzu ana iya amfani da su daban: aiki ko da yaushe Ƙarya (): ƙarya { mayar da ƙarya ; }
  • Bayar da ikon tace saituna masu mahimmanci a cikin abubuwan da ake fitarwa a lokacin kuskure. Ana iya buƙatar yanke wasu bayanai lokacin da aka aika bayanai game da kurakurai da ke faruwa ta atomatik zuwa sabis na ɓangare na uku waɗanda ke bin matsalolin da sanar da masu haɓakawa game da su. Misali, zaku iya keɓance sigogi daga alamar da suka haɗa da sunayen mai amfani, kalmomin shiga, da masu canjin yanayi. Gwajin aikin ($ foo, #[\SensitiveParameter] $ kalmar sirri, $ baz ) {jifa sabon Exception ('Kuskure'); } gwaji ('foo', 'password', 'baz'); Kuskure mai kisa: Ba a kama shi ba: Kuskure a cikin gwaji.php:8 Tari: #0 test.php(11): gwaji('foo', Object(SensitiveParameterValue),'baz') #1 {main} jefa a test.php akan layi 8
  • An ba da izini don ayyana ma'auni a cikin halaye (halaye, tsarin sake amfani da lamba). Ana iya samun ma'anar ma'auni a cikin sifa ta hanyar ajin da ke amfani da sifa (amma ba ta sunan sifa ba). hali Foo { jama'a const CONSTANT = 1; bar aikin jama'a (): int {dawo da kai :: CONSTANT; // Kuskuren kisa } } Bar Bar {amfani da Foo; } var_dump (Bar :: CONSTANT); // 1
  • Edara ikon tantance nau'ikan a cikin tsari mai discunicy iri lokaci guda). class Foo {bargon aikin jama'a((A&B)|sharar $entity) {idan ($entity === null) {koma baya; } mayar da $ } }
  • An gabatar da sabon tsawaita “Random” tare da ayyuka da azuzuwan samar da lambobi na bazuwar bazuwar da jeri. Module ɗin yana ba da ƙa'idar da ta dace da abu, tana ba ku damar zaɓar injuna daban-daban don ƙirƙirar lambobin bazuwar, gami da waɗanda suka dace don amfani da su a cikin cryptography, kuma suna ba da ayyuka na taimako, misali, don haɗa tsararru da kirtani bazuwar, zaɓin maɓallan tsararru bazuwar, amfani lokaci guda na janareta da yawa tare da jihar ku mai zaman kanta. $rng = $is_production ? sabon Random Engine Engine Secure(): sabon Random EngineMt19937(1234); $randomizer = sabon Random\Randomizer($rng); $randomizer-> shuffleString ('foobar');
  • Canjin shari'ar mai zaman kanta da aka aiwatar. Ayyuka kamar strtolower() da strtoupper() yanzu koyaushe suna canza yanayin haruffa a cikin kewayon ASCII, kamar lokacin saita wurin zuwa "C".
  • Ƙara sabbin ayyuka: mysqli_execute_query, curl_upkeep, memory_reset_peak_usage, ini_parse_quantity, libxml_get_external_entity_loader, sodium_crypto_stream_xchacha20_xor_ic, openssl_cipher_key_length.
  • Ƙara sababbin hanyoyin: mysqli ::execute_query, ZipArchive :: getStreamIndex, ZipArchive :: getStreamName, ZipArchive :: clearError, ReflectionFunction :: isAnonymous, ReflectionMethod :: yana da Prototype.
  • Ikon ƙirƙirar kadarori a cikin aji ya ƙare. A cikin PHP 9.0, samun dama ga kaddarorin da ba a bayyana su da farko ba a cikin aji zai haifar da kuskure (ErrorException). Azuzuwan da ke ba da hanyoyin __get da __set don ƙirƙirar kadarori, ko kaddarorin masu ƙarfi a cikin stdClass, za su ci gaba da yin aiki ba tare da canzawa ba, kawai fayyace aiki tare da kaddarorin da ba su wanzu ba za a tallafawa don kare mai haɓakawa daga ɓoyayyun kwari. Don adana aikin tsohuwar lambar, ana ba da shawarar sifa "#[AllowDynamicProperties]", yana ba da damar amfani da kaddarorin masu ƙarfi.
  • Ƙarfin musanya madaidaicin ƙima cikin kirtani ta amfani da "${var}" da kuma ${(var)}" furuci ya ƙare. An kiyaye goyan bayan "{$var}" da "$var" da aka saba amfani da su. Misali: "Sannu {$ duniya}"; Ok "Hello $ duniya"; Ok "Sannu ${duniya}"; An soke: An daina amfani da ${} a cikin kirtani
  • Ƙaƙƙarfan ƙira mai goyan bayan ɓangaren da za a iya kira ta hanyar "call_user_func($callable)", amma ba sa goyan bayan yin kira ta hanyar "$ callable()": "kai :: Hanyar" "iyaye:: Hanyar" "tsaye :: Hanyar" ["kai", "hanyar"] ["iyaye", "hanyar"] ["iyaye", "hanyar"] ["tsaye", "Tsarin"]
  • An ƙara umarnin kuskure_log_mode a cikin saitunan, yana ba ku damar tantance yanayin shiga cikin rajistar kuskure.

source: budenet.ru

Add a comment