Nowości w PHP 8.2

Bartosz

Bartosz Stefanicki 14 września 2022

Nowości w PHP 8.2

PHP w wersji 8.2 zostanie wydane 24 listopada 2022 roku. Sprawdźmy co nowego pokaże się tym razem.

1. Nowe typy zwracanych danych: true, false, null

Przed wersją PHP 8.2 możliwe jest zwracanie danych w łączonych postaciach (unions), np. ?string. Wówczas metoda może zwrócić string lub null. PHP 8.2 wprowadza nowe typy zwracanych danych: true, false i null.

function testMethod(): null
{
    return null;
} 

function testMethod(): true
{
    return true;
} 

2. Klasy tylko do odczytu (readonly classes)

Wersja PHP 8.1 wprowadziła modyfikator readonly do właściwości klas. Wersja PHP 8.2 wprowadza ten modyfikator do oznaczenia klasy, dzięki czemu można skrócić zapis i nie oznaczać po kolei wszystkich właściwości klas jako readonly.

class User
{
    public function __construct(
        public readonly string $firstName,
        public readonly integer $status,
        public readonly DateTime $createdAt,
    ) {}
}

Wersja w PHP 8.2 może wyglądać następująco:

readonly class User
{
    public function __construct(
        public string $firstName,
        public integer $status,
        public DateTime $createdAt,
    ) {}
}

3. Wycofanie dynamicznych właściwości

PHP 8.2 wycofuje dynamiczne właściwości w klasach. Od PHP 8.2 wyświetlane będzie ostrzeżenie E_DEPRECATED, od wersji 9.0 wyrzucany będzie wyjątek typu Error.

Ostrzeżenie do wersji PHP 9.0 można ukryć za pomocą atrybutu #[AllowDynamicProperties]. Przykład z RFC:

class User {
    public $name;
}

$user = new User();

// Assigns declared property User::$name.
$user->name = 'foo';

// Oops, a typo:
$user->nane = 'foo';

4. Wycofanie utf8_encode() i utf8_decode()

PHP 8.2 wycofuje utf8_encode() i utf8_decode(). Konwertowały one pomiędzy kodowaniem znaków ISO-8859-1 a UTF-8. Próba ich wykorzystania wywoła poniższy błąd:

    Deprecated: Function utf8_encode() is deprecated
    Deprecated: Function utf8_decode() is deprecated

Wskazywana alternatywa to wykorzystanie mb_convert_encoding().

Cykl życia wersji PHP

Wersja PHP Data wydania Koniec wsparcia Koniec poprawek bezpieczeństwa
PHP 5.6 27.04.2014 19.01.2017 31.12.2018
PHP 7.0 1.12.2015 4.01.2018 10.01.2019
PHP 7.1 30.11.2016 1.12.2018 1.12.2019
PHP 7.2 28.11.2017 30.11.2019 30.11.2020
PHP 7.3 4.12.2018 6.12.2020 6.12.2021
PHP 7.4 26.11.2019 28.11.2021 28.11.2022
PHP 8.0 24.11.2020 26.11.2022 26.11.2023
PHP 8.1 23.11.2021 25.11.2023 25.11.2024
PHP 8.2 24.11.2022 24.11.2024 24.11.2025

Warto zobaczyć

Szukasz hostingu?

Jest dużo firm oferujących hosting, ale którą wybrać? Przedstawiamy zestawienie najciekawszych propozycji i ranking hostingów (Grudzień 2022).

Data publikacji: 01.08.2022 r. Tagi: hosting, php, skrypty, top10. Źródło obrazka porady: Pixabay.

Komentarze


© 2005-2022 itporady.pl. Wszystkie prawa zastrzeżone.

Używamy informacji zapisanych za pomocą cookies i podobnych technologii m.in. w celach reklamowych, statystycznych oraz dostosowania naszych serwisów do indywidualnych potrzeb użytkowników.