Kua timata te whakamatautau Arepa o PHP 8.2

Ko te tukunga alpha tuatahi o te peka hou o te PHP 8.2 reo kaupapa kua whakaatuhia. Kua whakaritea te tukunga mo te 24 o Noema. Ko nga mea hou e waatea ana mo te whakamatautau, kua whakamaherehia ranei mo te whakatinana i roto i te PHP 8.2:

  • Kua taapirihia nga momo motuhake "teka" me te "null", ka taea te whakamahi, hei tauira, mo te mahi ki te whakahoki i te haki whakamutu hapa, i te uara kore ranei. I mua, "teka" me te "null" ka taea anake te whakamahi tahi me etahi atu momo (hei tauira, "aho|teka"), engari inaianei ka taea te whakamahi wehe: function alwaysFalse(): teka { return false; }
  • 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
  • Ko te kaha ki te hanga hihiri i nga taonga i roto i te akomanga (penei i te "post->unknown" i te tauira i runga ake nei) kua whakakorehia. 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 taonga, nga ahuatanga hihiri ranei i roto i te stdClass ka mahi tonu kaore he huringa, ka tautokohia nga mahi kore noa me nga taonga kore-kore 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.
  • 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
  • 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 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".

Source: opennet.ru

Tāpiri i te kōrero