Hoʻokuʻu ʻia ka ʻōlelo papahana PHP 8.2

Ma hope o hoʻokahi makahiki o ka hoʻomohala ʻana, ua hōʻike ʻia ka hoʻokuʻu ʻana o ka PHP 8.2 programming language. Aia ka lālā hou i nā ʻano hiʻohiʻona hou, a me kekahi mau hoʻololi e uhaki i ka hoʻohālikelike.

Nā hoʻomaikaʻi koʻikoʻi ma PHP 8.2:

  • Hoʻohui i ka hiki ke hōʻailona i kahi papa ma ke ʻano he heluhelu wale nō. Hiki ke hoʻonohonoho ʻia nā waiwai i loko o ia mau papa i hoʻokahi wale nō, a laila ʻaʻole hiki ke hoʻololi ʻia. Ma mua, hiki ke kaha ʻia nā waiwai o ka papa pākahi i ka heluhelu wale nō, akā i kēia manawa hiki iā ʻoe ke hoʻā i kēia ʻano no nā waiwai papa āpau i ka manawa hoʻokahi. ʻO ka wehewehe ʻana i ka hae "heluhelu wale" ma ka pae papa e ālai ʻia nā waiwai mai ka hoʻohui ikaika ʻana i ka papa. papa heluhelu wale ʻo Post { hana lehulehu __construct( kaula lehulehu $poʻo inoa, mea kākau lehulehu $mea kākau, ) {} } $post = Post hou(/* … */); $post->unknown = 'hewa'; // Hapa: ʻAʻole hiki ke hana i ka waiwai dynamic Post::$unknown
  • Hoʻohui ʻia nā ʻano like ʻole "ʻoiaʻiʻo", "hewa" a me "null", hiki ke lawe i hoʻokahi waiwai kūpono a hoʻohana ʻia, no ka laʻana, e hoʻihoʻi i kahi hana me ka hae hoʻopau hewa a i ʻole ka waiwai ʻole. Ma mua, hiki ke hoʻohana ʻia ka "ʻoiaʻiʻo", "false" a me "null" me nā ʻano ʻē aʻe (e like me ka "string|false"), akā i kēia manawa hiki ke hoʻohana ʻokoʻa: function alwaysFalse (): false { return false ; }
  • Hāʻawi i ka hiki ke kānana i nā ʻāpana koʻikoʻi i ka hoʻopuka ʻana i ka hōʻiliʻili i ka wā o kahi hewa. Pono paha ka ʻoki ʻana i kekahi mau ʻike inā hoʻouna ʻia ka ʻike e pili ana i nā hewa i hana ʻia i nā lawelawe ʻaoʻao ʻekolu e nānā i nā pilikia a hoʻomaopopo i nā mea hoʻomohala e pili ana iā lākou. No ka laʻana, hiki iā ʻoe ke kāpae i nā ʻāpana i loaʻa nā inoa inoa, nā ʻōlelo huna, a me nā ʻano hoʻololi kaiapuni mai ka huli ʻana. hana hoao ($foo, #[\SensitiveParameter] $password, $baz) { hoolei hou Exception('Error'); } ho'āʻo ('foo', 'password', 'baz'); Hewa make: ʻAʻole i loaʻa ʻole: Hapa i ka test.php:8 Hoʻopaʻa ʻia: #0 test.php(11): hoʻāʻo('foo', Object (SensitiveParameterValue), 'baz') #1 {main} kiola ʻia i ka test.php ma ka laina 8
  • ʻAe ʻia e wehewehe i nā mea mau i nā ʻano (ʻano, kahi mīkini no ka hoʻohana hou ʻana i ke code). Hiki ke loaʻa nā mea mau i wehewehe ʻia i kahi ʻano ma o ka papa e hoʻohana ana i ke ʻano (akā ʻaʻole ma o ka inoa ʻano). trait Foo { public const CONSTANT = 1; pā hana lehulehu (): int { hoʻihoʻi iā ʻoe iho:: MAUA; // Fatal error } } class Bar { hoʻohana i ka Foo; } var_dump(Paʻa::MAUA); // 1
  • Hoʻohui i ka hiki ke kuhikuhi i nā ʻano ma ke ʻano maʻamau disjunctive (DNF, Disjunctive Normal Form), e hiki ai iā ʻoe ke hoʻohui i ka hui ʻana o nā ʻano (nā hōʻiliʻili o ʻelua a ʻoi aku paha nā ʻano) a me ka intersection o nā ʻano (nā ʻano i hāʻule i lalo o kekahi. ʻano like like). papa Foo { papa hana lehulehu((A&B)|null $entity) { if ($entity === null) { return null; } hoihoi $entity; } }
  • Ua hoʻolauna ʻia kahi hoʻonui hou "Random" me nā hana a me nā papa no ka hana ʻana i nā helu pseudo-random a me nā kaʻina. Hāʻawi ka module i kahi mea pili i ka mea, e ʻae iā ʻoe e koho i nā ʻenekini like ʻole no ka hoʻokumu ʻana i nā helu pseudo-random, me nā mea kūpono no ka hoʻohana ʻana i ka cryptography, a hāʻawi i nā hana kōkua, no ka laʻana, no ka hoʻohui ʻana i nā arrays a me nā kaula, ke koho ʻana i nā kī kī, ka hoʻohana like ʻana o kekahi mau generator me kou mokuʻāina kūʻokoʻa. $rng = $is_production ? hou Random\Engine\Secure() : hou Random\Engine\Mt19937(1234); $randomizer = hou Random\Randomizer($rng); $randomizer->shuffleString('foobar');
  • Hoʻokō ʻia ka hoʻololi hihia kūʻokoʻa kūloko. ʻO nā hana e like me strtolower() a me strtoupper() ke hoʻololi mau nei i ka hihia o nā huaʻōlelo i ka pae ASCII me he mea lā i hoʻonohonoho ʻia i ka "C" locale.
  • Hoʻohui i nā hana hou: 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ʻohui ʻia nā ala hou: mysqli::execute_query, ZipArchive::getStreamIndex, ZipArchive::getStreamName, ZipArchive::clearError, ReflectionFunction::isAnonymous, ReflectionMethod::hasPrototype.
  • Ua hoʻopau ʻia ka hiki ke hana i nā waiwai i loko o kahi papa. Ma PHP 9.0, ke komo ʻana i nā waiwai ʻaʻole i wehewehe mua ʻia i ka papa e hopena i kahi hewa (ErrorException). ʻO nā papa e hāʻawi ana i nā ʻano hana __get a me __set no ka hana ʻana i nā waiwai, a i ʻole nā ​​​​mea hoʻoikaika i ka stdClass e hoʻomau i ka hana me ka ʻole o nā loli, e kākoʻo ʻia ka hana implicit me nā waiwai ʻole e pale i ka mea hoʻomohala mai nā pōpoki huna. No ka mālama ʻana i ka hana o ke code kahiko, ua noi ʻia ke ʻano "#[AllowDynamicProperties]", e ʻae ana i ka hoʻohana ʻana i nā waiwai dynamic.
  • ʻO ka hiki ke hoʻololi i nā waiwai hoʻololi i nā kaula me ka hoʻohana ʻana i nā huaʻōlelo "${var}" a me ${(var)} ua hoʻopau ʻia. Ua mālama ʻia ke kākoʻo no ka hoʻohana maʻamau "{$var}" a me "$var". No ka laʻana: "Aloha {$world}"; OK "Aloha $world"; OK "Aloha ${world}"; Hoʻopau ʻia: Ua pau ka hoʻohana ʻana i ${} i nā kaula
  • ʻAʻole i kākoʻo i ke kelepona ʻana ma ke ʻano o "$callable()": "self::method" "parent::method" "static" ::method. " ["self", "meana"] ["makua", "meana"] ["static", "metod"] ["Foo", "Bar::metod"] [New Foo, "Bar: :metod" ]
  • Ua hoʻohui ʻia ke kuhikuhi error_log_mode i nā hoʻonohonoho, e ʻae iā ʻoe e hoʻoholo i ke ʻano komo i ka log error.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka