Te tukunga o te PHP 8.2 reo hotaka

I muri i te tau o te whakawhanaketanga, ka whakaatuhia te whakaputanga o te PHP 8.2 reo whakahōtaka. Kei roto i te peka hou he raupapa o nga ahuatanga hou, me te maha o nga huringa ka pakaru te hototahi.

Nga whakapainga matua i roto i te PHP 8.2:

  • I taapirihia te kaha ki te tohu i tetahi karaehe hei panui-anake. Ko nga taonga kei roto i enei karaehe ka taea te whakarite kotahi anake, ka mutu kaore e taea te whakarereke. I mua, ka taea te tohu i nga ahuatanga o te karaehe kia panui-anake, engari inaianei ka taea e koe tenei aratau mo nga taonga akomanga katoa i te wa kotahi. Ko te tohu i te haki "panui anake" i te taumata o te karaehe ka aukati ano i nga taonga kia kore e taapiri hihiri ki te akomanga. panui anake te karaehe Panui { mahi whanui __hanga( aho tūmatanui $title, Kaituhi tūmatanui $kaituhi, ) {} } $post = Post hou(/* … */); $post->unknown = 'he'; // Hapa: Kaore e taea te hanga taonga hihiko Post::$unknown
  • Kua taapirihia nga momo motuhake "pono", "teka" me te "null", ka taea te tango kotahi noa te uara whaimana, ka whakamahia, hei tauira, ki te whakahoki i tetahi mahi me te haki whakamutu hapa, he uara kore ranei. I mua, ko te "pono", "teka" me te "null" ka taea anake te whakamahi me etahi atu momo (hei tauira, "aho|teka"), engari inaianei ka taea te whakamahi wehe: function alwaysFalse(): false { return false ; }
  • Ka whakarato i te kaha ki te tarai i nga tawhā tairongo i roto i te whakaputanga whakapapa i te wa o te hapa. Ko te tapahi i etahi korero ka tika ka tukuna aunoa nga korero mo nga hapa ka puta ki nga ratonga tuatoru e whai ana i nga raru me te whakamohio i nga kaiwhakawhanake. Hei tauira, ka taea e koe te whakakore i nga tawhā kei roto ko nga ingoa ingoa, kupuhipa, me nga taurangi taiao mai i te rapu. whakamātautau mahi( $foo, #[\SensitiveParameter] $password, $baz ) { maka te Okotahi hou('Hapa'); } whakamātautau('foo', 'kupuhipa', 'baz'); Hapa mate: Kore i mau: Hapa i roto i te whakamatautau.php:8 Taapiri i runga: #0 test.php(11): whakamatautau('foo', Ahanoa(SensitiveParameterValue), 'baz') #1 {matua} i maka ki te whakamatautau.php i te raina 8
  • Ka whakaaetia ki te tautuhi i nga taumau i roto i nga ahuatanga (ahua, he tikanga mo te whakamahi ano i te waehere). Ka taea te uru atu ki roto i te karaehe e whakamahi ana i te ahuatanga (engari kaua ma te ingoa tohu). trait Foo { public const CONSTANT = 1; pae mahi tūmatanui (): int { hoki mai:: CONSTANT; // Fatal error } } class Bar {whakamahi Foo; } var_dump(Pae::CONSTANT); // 1
  • Kua taapirihia te kaha ki te tautuhi momo i roto i te ahua rereke (DNF, Disjunctive Normal Form), ka taea e koe te whakakotahi i te whakakotahitanga o nga momo (kohinga e rua, neke atu ranei nga momo) me te whakawhitinga o nga momo (nga momo ka taka nga uara ki raro i te maha. momo i te wa kotahi). class Foo { pae mahi tūmatanui((A&B)|null $entity) { if ($entity === null) {turn null; } whakahokia $entity; }}
  • He toronga hou "Random" kua tohua me nga mahi me nga karaehe hei whakaputa i nga tau pseudo-tupurangi me nga raupapa. Ka whakaratohia e te kōwae he atanga ahanoa, ka taea e koe te kowhiri i nga miihini rereke mo te whakaputa i nga nama pseudo-tupurangi, tae atu ki nga mea e tika ana mo te whakamahi i roto i te tuhinga tuhi, me te whakarato i nga mahi awhina, hei tauira, mo te ranu matapōkeretia i nga raupapa me nga aho, te whiriwhiri i nga taviri raupapa matapōkere, te whakamahi i te wa kotahi o te maha o nga kaihanga me to ake whenua motuhake. $rng = $is_production ? new Random\Engine\Secure() : new Random\Engine\Mt19937(1234); $randomizer = new Random\Randomizer($rng); $randomizer->shuffleString('foobar');
  • Kua whakatinanahia te hurihanga take-a-rohe. Ko nga mahi penei i te strtolower() me te strtoupper() ka huri tonu i te keehi o nga tohu kei te awhe ASCII me te mea kua tautuhia ki te waahi "C".
  • Kua taapirihia nga mahi 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.
  • Kua taapirihia nga tikanga hou: mysqli::execute_query, ZipArchive::getStreamIndex, ZipArchive::getStreamName, ZipArchive::clearError, ReflectionFunction::isAnonymous, ReflectionMethod::hasPrototype.
  • Kua whakakorehia te kaha ki te hanga i nga rawa i roto i te karaehe. I roto i te PHP 9.0, ka puta he hapa (ErrorException). Ko nga karaehe e whakarato ana i nga tikanga __get me te __set mo te hanga i nga rawa, i nga ahuatanga hihiri ranei i roto i te stdClass ka mahi tonu me te kore huringa, ko te mahi pohehe anake me nga taonga kore-kore ka tautokohia hei tiaki i te kaiwhakawhanake mai i nga pepeke huna. Hei pupuri i nga mahi o te waehere tawhito, ka tukuna te huanga "#[AllowDynamicProperties]", ka taea te whakamahi i nga ahuatanga hihiri.
  • Ko te kaha ki te whakakapi i nga uara taurangi ki nga aho ma te whakamahi i nga kupu "${var}" me ${(var)} kua whakakorehia. Ko te tautoko mo nga whakakapinga "{$var}" me te "$var" kua mau tonu. Hei tauira: "Kia ora {$world}"; OK "Kia ora $world"; OK "Kia ora ${world}"; Kua whakakorehia: Ko te whakamahi i te ${} i roto i nga aho kua whakakorehia
  • Ko nga waea waea kua whakakorehia e tautokohia ana ka taea te karanga ma te "call_user_func($callable)" engari kaua e tautoko i te waea ki te ahua "$callable()": "self::method" "parent::method" "static" ::method " ["whaiaro", "tikanga"] ["matua", "tikanga"] ["pateko", "tikanga"] ["Foo", "Pae::tikanga"] [Foo hou, "Pae: : tikanga" ]
  • Kua taapirihia te tohutohu error_log_mode ki nga tautuhinga, ka taea e koe te whakatau i te aratau uru ki te raarangi hapa.

Source: opennet.ru

Tāpiri i te kōrero