Ukuhlolwa kwe-Alpha kwe-PHP 8.2 sekuqalile

Ukukhishwa kokuqala kwe-alpha kwegatsha elisha lolimi lokuhlela lwe-PHP 8.2 kwethulwe. Ukukhululwa kuhlelelwe uNovemba 24. Izindlela ezintsha eziqanjiwe ezivele zitholakalela ukuhlolwa noma ezihlelelwe ukuqaliswa ku-PHP 8.2:

  • Добавлены отдельные типы «false» и «null», которые могут использоваться, например, для возвращения функцией признака завершения с ошибкой или пустого значения. Ранее «false» и «null» могли использоваться только в связке с другими типами (например, «string|false»), а теперь могут применяться отдельно: function alwaysFalse(): false { return false; }
  • Kwengezwe ikhono lokumaka ikilasi njengelifundwayo kuphela. Izakhiwo emakilasini anjalo zingasethwa kanye kuphela, ngemva kwalokho azikwazi ukushintshwa. Ngaphambilini, izakhiwo zesigaba ngasinye zazimakwa njengefundwa kuphela, kodwa manje usungakwazi ukunika amandla le modi kuzo zonke izakhiwo zekilasi ngesikhathi esisodwa. Ukucacisa ifulegi elithi "funda kuphela" ezingeni lekilasi futhi kuvimbela izakhiwo ukuthi zengezwe ngendlela eguqukayo ekilasini. i-readonly class Post { umsebenzi womphakathi __construct( intambo yomphakathi $title, uMbhali womphakathi $author, ) {} } $okuthunyelwe = Okuthunyelwe okusha(/* … */); $post->unknown = 'okungalungile'; // Iphutha: Ayikwazi ukudala impahla eguqukayo Thumela::$akwaziwa
  • Объявлена устаревшей возможность динамического создания свойств в классе (как «post->unknown» в примере выше). В PHP 9.0 обращение к свойствам, изначально не определённым в классе, будет приводить к ошибке (ErrorException). Классы, предоставляющие методы __get и __set для создания свойств, или динамические свойства в stdClass продолжат работать без изменений, прекратится поддержка только неявной работы с несуществующими свойствами для того чтобы защитить разработчика от скрытых ошибок. Для сохранения работы старого кода предложен атрибут «#[AllowDynamicProperties]», разрешающий использование динамических свойств.
  • Inikeza amandla okuhlunga amapharamitha azwelayo kokuphumayo kokulandelela isitaki ngesikhathi sephutha. Ukusika ulwazi oluthile kungase kudingeke uma ulwazi olumayelana namaphutha enzekayo luthunyelwa ngokuzenzakalelayo kumasevisi ezinkampani zangaphandle alandelela izinkinga futhi azise onjiniyela ngawo. Isibonelo, ungakhipha amapharamitha afaka amagama abasebenzisi, amagama ayimfihlo, neziguquko zemvelo ekulandeleni. umsebenzi wokuhlola( $foo, #[\SensitiveParameter] $password, $baz ) {phonsa Okuhlukile okusha('Iphutha'); } test('foo', 'password', 'baz'); Iphutha elibulalayo: Okuhlukile Okungabanjwanga: Iphutha ku-test.php:8 Ukulandelela isitaki: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} iphonswe ku-test.php kulayini 8
  • Ikhono lokushintsha amanani ahlukile ube yiyunithi yezinhlamvu usebenzisa izisho ezithi "${var}" kanye ne-${(var)} yehlisiwe. Usekelo lokushintshwa okuvame ukusetshenziswa kwe-"{$var}" kanye ne-"$var" kugciniwe. Isibonelo: "Sawubona {$world}"; Kulungile "Sawubona $world"; Kulungile "Sawubona ${world}"; Kwehlisiwe: Ukusebenzisa i-${} kuyunithi yezinhlamvu kuhoxisiwe
  • Izingcingo ezehlisiwe ezisekelwa kancane ezingabizwa ngokuthi "call_user_func($callable)" kodwa azisekeli ukushaya ngendlela "$callable()": "self::indlela" "parent::indlela" "static" ::indlela " ["self", "indlela"] ["umzali", "indlela"] ["static", "method"] ["Foo", "Bar::method"] [i-Foo entsha, "Ibha: :indlela" ]
  • Kusetshenziswe ukuguqulwa kwecala elizimele lendawo. Imisebenzi efana ne-strtolower() kanye ne-strtoupper() manje ihlala iguqula isimo sezinhlamvu kububanzi be-ASCII njengokungathi isethwe endaweni ethi "C".

Source: opennet.ru

Engeza amazwana