Phetolelo ea puo ea lenaneo la PHP 8.2

Kamora selemo sa nts'etsopele, ho ile ha hlahisoa tokollo ea puo ea lenaneo la PHP 8.2. Lekala le lecha le kenyelletsa letoto la likarolo tse ncha, hammoho le liphetoho tse 'maloa tse senyang ho lumellana.

Lintlafatso tsa bohlokoa ho PHP 8.2:

  • E kentse bokhoni ba ho tšoaea sehlopha e le sa ho bala feela. Thepa ea lihlopha tse joalo e ka behoa hanngoe feela, ka mor'a moo e ke ke ea fumaneha bakeng sa phetoho. Pele, thepa ea sehlopha ka seng e ne e ka tšoauoa hore e baloe feela, empa joale u ka bulela mokhoa ona bakeng sa thepa eohle ea sehlopha hang-hang. Ho hlakisa folakha ea "bala feela" maemong a phaposi ho boetse ho thibela tlatsetso e matla ea thepa sehlopheng. bala feela sehlopha Post { mosebetsi oa sechaba __construct( khoele ea sechaba $ title, public Author $ author, ) {} } $ post = new Post(/* … */); $ poso-> e sa tsejoeng = 'fosahetse'; // Phoso: Ha e khone ho theha thepa e matla Post::$e sa tsejoe
  • Ho ekelitsoe mefuta e fapaneng ea "nete", "false" le "null", e ka nkang boleng bo le bong feela bo nepahetseng 'me e sebelisoa, mohlala, ho khutlisa tšebetso e nang le folakha ea ho felisa phoso kapa boleng bo se nang letho. Pele, "nete", "false" le "null" li ne li ka sebelisoa feela hammoho le mefuta e meng (mohlala, "string|false"), empa joale li ka sebelisoa ka thoko: function alwaysFalse(): false { return false ; }
  • E fane ka bokhoni ba ho sefa litlhophiso tse hlokolosi molemong oa trace track ea stack ka nako ea phoso. Ho ka 'na ha hlokoa ho khaola tlhahisoleseding e itseng ha tlhahisoleseding e mabapi le liphoso tse hlahang e romelloa ka bo eona litšebeletsong tsa mekhatlo ea boraro tse latellang mathata le ho tsebisa baetsi ba tsona. Mohlala, o ka qhelela ka thoko liparamente ho latela mohlala o kenyelletsang mabitso a basebelisi, li-password, le maemo a tikoloho. teko ea ts'ebetso ($ foo, #[\ SensitiveParameter] $password, $baz) {lahlela Mokhelo o mocha ('Phoso'); } teko('foo', 'password', 'baz'); Phoso e bolaeang: Khethollo e sa Tšoareloang: Phoso tekong.php:8 Stack trace: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} e kentsoe tekong.php inthaneteng 8
  • E lumelletsoe ho hlalosa li-constants ho litsobotsi (ts'ebetso, mochini oa ho sebelisa khoutu hape). Lits'oants'o tse hlalosoang ka sebopeho li ka fumaneha ka sehlopha se sebelisang tšobotsi (empa eseng ka lebitso la sebopeho). tšobotsi Foo {public const CONSTANT = 1; mosebetsi oa sechaba bar(): int {ikhutlele self::CONSTANT; // Phoso e bolaeang } } Sehlopha sa Bar {sebelisa Foo; } var_dump(Bar::CONSTANT); // 1
  • E ekelitse bokhoni ba ho hlakisa mefuta ka mokhoa o tloaelehileng oa disjunctive (DNF, Disjunctive Normal Form), e u lumellang ho kopanya kopano ea mefuta (lipokello tsa mefuta e 'meli kapa ho feta) le mateano a mefuta (mefuta eo boleng ba eona bo oelang tlas'a tse' maloa). mefuta ka nako e le nngwe). sehlopha sa Foo {mosebetsi oa sechaba ((A&B)|null $entity) {haeba ($ mokhatlo === null) { return null; } khutlisetsa $ mokhatlo; }}
  • Katoloso e ncha ea "Random" e hlahisitsoe ka mesebetsi le litlelase bakeng sa ho hlahisa linomoro tsa pseudo-random le tatelano. Mojule o fana ka sebopeho se shebaneng le ntho, e u lumella ho khetha lienjineri tse fapaneng bakeng sa ho hlahisa linomoro tsa pseudo-random, ho kenyelletsa le tse loketseng ho sebelisoa ho cryptography, mme e fana ka mesebetsi e thusang, mohlala, bakeng sa ho kopanya lihlopha le likhoele, ho khetha linotlolo tse sa reroang, ts'ebeliso ea nako e le 'ngoe ea lijenereithara tse' maloa tse nang le naha ea hau e ikemetseng. $rng = $ke_tlhahiso ? new Random\Engine\Secure() : new Random\Engine\Mt19937(1234); $randomizer = e ncha Random\Randomizer($rng); $randomizer-> shuffleString('foobar');
  • E kentse tšebetsong phetoho ea linyeoe tse ikemetseng. Mesebetsi e kang strtolower() le strtoupper() joale e lula e fetola boemo ba litlhaku ho ASCII, joalo ka ha u beha sebaka sa "C".
  • E kentse mesebetsi e mecha: 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.
  • Ho ekelitsoe mekhoa e mecha: mysqli::execute_query, ZipArchive::getStreamIndex, ZipArchive::getStreamName, ZipArchive::clearError, ReflectionFunction::isAnonymous, ReflectionMethod::hasPrototype.
  • Bokhoni ba ho theha thepa ka mokhoa o matla sehlopheng bo tlositsoe. Ho PHP 9.0, ho fihlella thepa e sa hlalosoang qalong sehlopheng ho tla baka phoso (ErrorException). Lihlopha tse fanang ka __get le __set mekhoa ea ho theha thepa, kapa thepa e matla ho stdClass e tla tsoela pele ho sebetsa ntle le liphetoho, ho tla tšehetsoa feela mosebetsi o hlakileng o nang le thepa e seng teng ho sireletsa moqapi ho tsoa ho likokoana-hloko tse patehileng. Ho boloka mosebetsi oa khoutu ea khale, ho hlahisoa tšobotsi ea "#[AllowDynamicProperties]", e lumellang tšebeliso ea thepa e matla.
  • Bokhoni ba ho beha maemo a feto-fetohang sebakeng sa likhoele ho sebelisa mantsoe a "${var}" le ${(var)}" bo tlositsoe. Tšehetso ea "{$var}" le "$var" e sebelisoang hangata e bolokiloe. Ka mohlala: "Lumela {$lefatše}"; OK "Hello $ lefatše"; OK "Dumela ${lefatshe}"; E tlositsoe: Ho sebelisa ${} ka har'a likhoele ho tlositsoe
  • Li-call tse tšehetsoeng ka mokhoa o itseng tse ka bitsoang ka "call_user_func($callable)" li tlositsoe, empa ha li tšehetse ho letsetsa ka mokhoa "$callable()": "self::method" "parent::method" "static :: mokhoa" ["self", "method"] ["motsoali", "mokhoa"] ["static", "mokhoa"] ["Foo", "Bar::mokhoa"] [Foo e ncha, "Bar: :mokhoa "]
  • Taelo ea error_log_mode e kenyelelitsoe ho litlhophiso, e leng se u lumellang hore u tsebe mokhoa oa ho fumana mokhoa oa ho fumana tlaleho ea phoso.

Source: opennet.ru

Eketsa ka tlhaloso