Testkirina Alpha ya PHP 8.2 dest pê kir

Yekem serbestberdana alfa ya şaxê nû yê zimanê bernamenûsê PHP 8.2 hate pêşkêş kirin. Di 24ê Mijdarê de serbestberdan tê plankirin. Nûvekirinên sereke yên ku jixwe ji bo ceribandinê hene an ji bo bicîhkirinê di PHP 8.2 de têne plan kirin:

  • Добавлены отдельные типы «false» и «null», которые могут использоваться, например, для возвращения функцией признака завершения с ошибкой или пустого значения. Ранее «false» и «null» могли использоваться только в связке с другими типами (например, «string|false»), а теперь могут применяться отдельно: function alwaysFalse(): false { return false; }
  • Kapasîteya nîşankirina polê wekî tenê-xwendewarî lê zêde kir. Taybetmendiyên di çînên weha de tenê carekê têne danîn, piştî ku ew ê ji bo guhertinê nebin. Berê, taybetmendiyên pola ferdî dikaribû bi tenê-xwendinê were nîşankirin, lê naha hûn dikarin vê modê ji bo hemî taybetmendiyên polê bi yekcarî vekin. Diyarkirina ala "xwendî" di asta polê de jî zêdekirina dînamîk a taybetmendiyan li polê asteng dike. tenê xwendin class Post { fonksiyona giştî __construct( rêzika giştî $sernav, giştî Nivîskar $author, ) {} } $post = Posta nû(/* … */); $post->nenas = 'şaş'; // Çewtî: Taybetmendiya dînamîk nayê afirandin Post::$nenas
  • Объявлена устаревшей возможность динамического создания свойств в классе (как «post->unknown» в примере выше). В PHP 9.0 обращение к свойствам, изначально не определённым в классе, будет приводить к ошибке (ErrorException). Классы, предоставляющие методы __get и __set для создания свойств, или динамические свойства в stdClass продолжат работать без изменений, прекратится поддержка только неявной работы с несуществующими свойствами для того чтобы защитить разработчика от скрытых ошибок. Для сохранения работы старого кода предложен атрибут «#[AllowDynamicProperties]», разрешающий использование динамических свойств.
  • Di dema xeletiyekê de şiyana fîlterkirina mîhengên hesas di derketina şopa stakê de peyda kir. Dema ku agahdariya li ser xeletiyên ku diqewimin bixweber ji karûbarên sêyemîn ên ku pirsgirêkan dişopînin û pêşdebiran di derheqê wan de agahdar dikin re têne şandin, qutkirina hin agahdarî dibe ku hewce bike. Mînakî, hûn dikarin parametreyên ku navên bikarhêner, şîfre û guhêrbarên hawîrdorê vedigirin ji şopê derxin. testa fonksiyonê( $foo, #[\SensitiveParameter] $şîfre, $baz ) { Îstîsnayeke nû bavêje('Çewtî'); } test('foo', 'password', 'baz'); Çewtiya kujer: Negirtî Exception: Di testê de çewtî.php:8 Şopa stûnê: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} di test.php de li ser rêza 8-ê hatî avêtin
  • Qabiliyeta guheztina nirxên guhêrbar di nav rêzan de bi karanîna biwêjên "${var}" û ${(var)}" hate betal kirin. Piştgiriya ji bo cîgirên "{$var}" û "$var" yên ku bi gelemperî têne bikar anîn parastiye. Mînak: "Silav {$world}"; OK "Silav $world"; OK "Silav ${world}"; Berbiçav: Bikaranîna ${} ya di rêzikan de tê betal kirin
  • Bangên qismî yên piştgirîkirî yên ku dikarin bi rêya "call_user_func($callable)" werin gazî kirin, lê piştgirî nadin bangawaziya bi forma "$callable()": "self::metod" "bav::rêbaz" "statîk::rêbaz" ["xwe", "rêbaz"] "["bav", "rêbaz":F] Foo, "Bar:: rêbaz"]
  • Veguherîna doza serbixwe-herêmî pêk anî. Fonksiyonên mîna strtolower() û strtoupper() naha her gav rewşa tîpan di nav rêza ASCII de vediguhezînin, wekî dema ku cîhê li "C" saz bikin.

Source: opennet.ru

Add a comment