PHP 8.3 to ważna aktualizacja języka PHP, która zawiera wiele nowych funkcji, takich jak jawne typowanie stałych klas, głębokie klonowanie właściwości tylko do odczytu i dodatki do funkcjonalności losowości. Jak zawsze, obejmuje również ulepszenia wydajności, poprawki błędów i ogólne porządki.
Spis treści
Nowe funkcje i ulepszenia
Stałe typów klas
Możliwość deklarowania typów dla właściwości klas jest dostępna od PHP 7.4. Jednak pomimo licznych modyfikacji typowania w PHP na przestrzeni lat, nie rozciągało się to na stałe – do teraz. Stałe klas – a także interfejsów, cech i stałych enum – mogą być typowane w PHP 8.3, co sprawia, że mniej prawdopodobne jest, że programiści odbiegną od intencji stojącej za początkowym deklarowaniem stałej.
Funkcja json_validate()
PHP 8.3 wprowadza nową funkcję json_validate()
, która pozwala na sprawdzenie, czy dany ciąg jest poprawnym formatem JSON, bez konieczności dekodowania go. To może być szczególnie przydatne w przypadkach, gdy chcemy tylko sprawdzić poprawność JSON, nie potrzebując faktycznie przetwarzać danych.
Głębokie klonowanie właściwości tylko do odczytu
W PHP 8.3 wprowadzono możliwość głębokiego klonowania właściwości tylko do odczytu. Oznacza to, że teraz możemy tworzyć kopie obiektów z właściwościami tylko do odczytu, co wcześniej było niemożliwe. Ta funkcja może być szczególnie przydatna w przypadku tworzenia kopii zapasowych stanu obiektu lub przechowywania stanu obiektu do późniejszego użycia.
Nowy atrybut #[\Override]
PHP 8.3 wprowadza nowy atrybut #[\Override]
, który można użyć do wskazania, że metoda w klasie potomnej ma zamiar nadpisać metodę w klasie nadrzędnej. Jeśli metoda nadrzędna nie istnieje, PHP zgłosi błąd, co może pomóc w wykrywaniu błędów podczas refaktoryzacji kodu.
Dynamiczne pobieranie stałych klas i członków enum
PHP 8.3 wprowadza możliwość dynamicznego pobierania stałych klas i członków enum. Oznacza to, że teraz możemy odwoływać się do stałych klas i członków enum za pomocą zmiennych, co wcześniej było niemożliwe. Ta funkcja może być szczególnie przydatna w przypadku tworzenia kodu, który musi być elastyczny i łatwo konfigurowalny.
Nowe metody getBytesFromString(), getFloat() i nextFloat()
PHP 8.3 wprowadza nowe metody getBytesFromString()
, getFloat()
i nextFloat()
, które rozszerzają funkcjonalność generowania liczb losowych w PHP. Te nowe metody umożliwiają generowanie losowych bajtów z ciągu znaków oraz losowych liczb zmiennoprzecinkowych w sposób nieobciążony, co wcześniej było trudne do osiągnięcia.
Podsumowanie
PHP 8.3 to ważna aktualizacja, która wprowadza wiele nowych funkcji i ulepszeń, które mogą przynieść korzyści programistom PHP na różnych poziomach zaawansowania. Od nowych funkcji, takich jak typowane stałe klas, do ulepszeń istniejących funkcji, takich jak generowanie liczb losowych, PHP 8.3 oferuje wiele nowych możliwości do odkrycia i wykorzystania.