PHP 8.2ren Alpha probak hasi dira

PHP 8.2 programazio-lengoaiaren adar berriaren lehen bertsio alfa aurkeztu da. Azaroaren 24rako aurreikusita dago kaleratzea. PHP 8.2n probatzeko edo ezartzeko aurreikusita dauden berrikuntza nagusiak:

  • "false" eta "null" mota bereiziak gehitu dira, adibidez, funtzio bat errore-bukatzeko bandera edo balio huts bat itzultzeko erabil daitezkeenak. Lehen, “false” eta “null” beste mota batzuekin batera bakarrik erabil zitezkeen (adibidez, “string|false”), baina orain bereiz erabil daitezke: function alwaysFalse(): false { return false; }
  • Klase bat irakurtzeko soilik gisa markatzeko gaitasuna gehitu da. Horrelako klaseetako propietateak behin bakarrik ezar daitezke, eta ondoren ezin dira aldatu. Lehen, klase-propietate indibidualak irakurtzeko soilik markatu zitezkeen, baina orain modu hau aldi berean gaitu dezakezu klase-propietate guztietarako. Klase mailan "irakurtzeko soilik" marka zehazteak ere blokeatzen du propietateak klasean dinamikoki gehitzea. irakurtzeko soilik Argitalpena { public function __construct( kate publikoa $izenburua, egile publikoa $egilea, ) {} } $argitalpena = argitalpen berria (/* … */); $post->unknown = 'okerra'; // Errorea: Ezin da propietate dinamikoa sortu Post::$unknown
  • Klase batean propietateak dinamikoki sortzeko gaitasuna (goiko adibidean "post->ezezaguna" bezalakoa) zaharkituta geratu da. PHP 9.0-n, hasiera batean klasean definituta ez dauden propietateak atzitzeak errore bat eragingo du (ErrorException). Propietateak sortzeko __get eta __set metodoak edo stdClass-en propietate dinamikoak eskaintzen dituzten klaseek aldaketarik gabe funtzionatzen jarraituko dute, existitzen ez diren propietateekin lan inplizitua soilik onartuko da garatzailea ezkutuko akatsetatik babesteko. Kode zaharraren lana gordetzeko, “#[AllowDynamicProperties]” atributua proposatzen da, propietate dinamikoak erabiltzeko aukera emanez.
  • Pila-arrastoaren irteeran parametro sentikorrak iragazteko gaitasuna ematen du errore batean. Zenbait informazio moztea beharrezkoa izan daiteke gertatzen diren akatsei buruzko informazioa automatikoki arazoen jarraipena egiten duten hirugarrenen zerbitzuetara bidaltzen denean eta garatzaileei horien berri ematen dietenean. Adibidez, erabiltzaile-izenak, pasahitzak eta ingurune-aldagaiak barne hartzen dituzten parametroak bazter ditzakezu trazatzetik. funtzio proba( $foo, #[\SensitiveParameter] $pasahitza, $baz ) { throw new Exception('Errorea'); } test('foo', 'pasahitza', 'baz'); Errore lazgarria: Atzeman gabeko Salbuespena: Errorea test.php:8 Stack-en arrastoa: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} test.php-n botata 8. lerroan
  • "${var}" eta ${(var)} esamoldeak erabiliz aldagai-balioak kateetan ordezkatzeko gaitasuna zaharkituta geratu da. "{$var}" eta "$var" ordezkapenen euskarria mantendu da. Adibidez: "Kaixo {$mundua}"; Ados "Kaixo $mundua"; Ados "Kaixo ${world}"; Zaharkituta: ${} kateetan erabiltzea zaharkituta dago
  • "call_user_func($callable)" bidez dei daitezkeen partzialki onartzen diren deigarriak zaharkituta daude, baina "$callable()" moduan deitzea onartzen ez dutenak: "self::method" "parent::method" "static" ::method " ["Norbera", "metodoa"] ["gurasoa", "metodoa"] ["estatikoa", "metodoa"] ["Foo", "Bar::metodoa"] [Foo berria, "Bar: :metodoa" ]
  • Inplementatu da lokaletik independentea den maiuskulak bihurtzea. strtolower() eta strtoupper() bezalako funtzioek orain beti bihurtzen dituzte ASCII barrutian karaktereen maiuskulak eta minuskulak "C" lokalean ezarrita balego bezala.

Iturria: opennet.ru

Gehitu iruzkin berria