Megkezdődött a PHP 8.2 alfa-tesztelése

Bemutatták a PHP 8.2 programozási nyelv új ágának első alfa-kiadását. A kiadás várható időpontja november 24. Főbb újítások, amelyek már tesztelhetőek vagy a PHP 8.2-ben megvalósításra kerülnek:

  • Bevezetésre kerültek a külön típusok: «false» és «null», amelyeket például hiba vagy üres érték jelzésére használhatunk visszatérési értékként. Korábban a «false» és «null» csak más típusokkal (pl. «string|false») együtt használhatóak voltak, mostantól viszont külön is alkalmazhatóak: function alwaysFalse(): false { return false; }
  • Lehetővé vált osztályok csak olvashatóként való megjelölése. Az ilyen osztályok tulajdonságai egyszer állíthatók be, és ezeket követően már nem változtathatók meg. Korábban csak egyes osztálytulajdonságok lehettek csak olvashatóként megjelölve, most azonban egyszerre aktiválható ez a mód minden osztálytulajdonságra. A «readonly» jelző megadása az osztály szintjén megakadályozza a dinamikus tulajdonságok hozzáadását az osztályhoz. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* … */); $post->unknown = ‘wrong’; // Hiba: Nem lehet dinamikus tulajdonságot létrehozni Post::$unknown
  • Elavultnak nyilvánították a dinamikus tulajdonságok létrehozásának lehetőségét az osztályokban (mint a «post->unknown» a fenti példában). A PHP 9.0-ban a kezdetben osztályban nem definiált tulajdonságokhoz való hozzáférés hibaüzenetet (ErrorException) fog generálni. Az osztályok, amelyek __get és __set metódusokat biztosítanak tulajdonságok létrehozására, vagy dinamikus tulajdonságok a stdClass-ban továbbra is működni fognak változatlanul, csak a nem létező tulajdonságokkal való implicit munka támogatása szűnik meg, hogy megvédje a fejlesztőt a rejtett hibáktól. A régi kód működésének megőrzésére javasolt az «#[AllowDynamicProperties]» attribútum, amely lehetővé teszi a dinamikus tulajdonságok használatát.
  • Lehetőség nyílt a bizalmas paraméterek szűrésére a hiba során megjelenített veremkövetési adatokban. Bizonyos információk eltávolítására lehet szükség, amikor a keletkező hibák automatikusan harmadik fél szolgáltatásokra kerülnek átirányításra, amelyek nyomon követik ezeket a problémákat és tájékoztatják a fejlesztőket. Például ki lehet zárni a veremből azokat a paramétereket, amelyek felhasználóneveket, jelszavakat és környezeti változókat tartalmaznak. function test( $foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception('Hiba'); } test('foo', 'password', 'baz'); Fatal error: Uncaught Exception: Hiba a test.php:8 fájlban Stack trace: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} thrown in test.php on line 8
  • Elavultnak nyilvánították a változók értékeinek beszúrásának lehetőségét a '${var}' és '${(var)}' kifejezések segítségével. A gyakran használt beszúrások, mint a '{$var}' és '$var' támogatása megmaradt. Például: „Hello {$world}”; OK „Hello $world”; OK „Hello ${world}”; Elavult: a '${}' használata stringekben elavult
  • Elavultnak nyilvánították a részben támogatott callable objektumokat, amelyeket a 'call_user_func($callable)' segítségével lehet hívni, de nem támogatják a '$callable()' formájú hívást: „self::method” „parent::method” „static::method” [„self”, „method”] [„parent”, „method”] [„static”, „method”] [„Foo”, „Bar::method”] [new Foo, „Bar::method”]
  • A karakterek független, nyelvi beállítástól mentes kis- és nagybetűs átkonvertálásának megvalósítása. Az olyan funkciók, mint a strtolower() és strtoupper(), mostantól mindig az ASCII karakterek nagyságát konvertálják, beleértve a 'C' nyelvi beállítást.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster