pierwsza wersja beta nowej gałęzi języka programowania PHP 8. Premiera planowana na 26 listopada. Równocześnie przygotowano poprawki do PHP 7.4.9, 7.3.21 oraz
7.2.33, które usuwają zgromadzone błędy i luki bezpieczeństwa.
Podstawowe PHP 8:
- , którego zastosowanie poprawi wydajność.
- nazwanych argumentów funkcji, pozwalających na przekazywanie wartości do funkcji w powiązaniu z nazwami, tzn. można przekazywać argumenty w dowolnej kolejności oraz definiować argumenty opcjonalne. Na przykład, „array_fill(start_index: 0, num: 100, value: 50)”.
- Przy wywołaniu metod zastosowanie operatora „?”, który pozwala na inicjowanie wywołania tylko wtedy, gdy metoda jest obecna, co pozwala uniknąć zbędnych kontroli na zwracaną wartość „null”. Na przykład, „$dateAsString = $booking->getStartDate()?->asDateTimeString()”;
- Wsparcie , definiujących kolekcje z dwóch lub więcej typów (na przykład „public function foo(Foo|Bar $input): int|float;”).
- Wsparcie (adnotacje), umożliwiające powiązanie metadanych (np. informacji o typach) z klasami bez użycia składni Docblock.
- Wsparcie dla wyrażeń , które w przeciwieństwie do switch mogą zwracać wartości, wspierają łączenie warunków, stosują surowe porównanie typów i nie wymagają podania „break”.
$result = match($input) {
0 => „hello”,
‘1’, ‘2’, ‘3’ => „world”,
}; - definicji klas, pozwalający na połączenie definicji konstruktora i właściwości.
- Nowy typ wartości zwracanej — .
- Nowy typ — , który może być używany do określenia przyjmowania przez funkcję parametrów o różnych typach.
- Wyrażenie do obsługi wyjątków.
- do tworzenia obiektów, które można przekazać do zbierania śmieci (np. do przechowywania opcjonalnych pamięci podręcznych).
- używania wyrażenia „::class” dla obiektów (odpowiednik wywołania get_class()).
- definicji w bloku catch wyjątków, które nie są przypisane do zmiennych.
- pozostawienia przecinka po ostatnim elemencie na liście parametrów funkcji.
- Nowy interfejs do identyfikacji wszelkich typów lub danych stringowych, które można przekształcić w ciąg (dla których dostępna jest metoda __toString()).
- Nowa funkcja , uproszczony odpowiednik strpos do określenia wystąpienia podciągu, a także funkcje str_starts_with() i str_ends_with() do sprawdzania zgodności na początku i końcu ciągu.
- Dodano funkcję , wykonująca operację dzielenia bez zgłaszania błędu w przypadku dzielenia przez zero.
- logika łączenia ciągów. Na przykład wyrażenie ‘echo „suma: ” . $a + $b’ wcześniej interpretowane było jako ‘echo („suma: ” . $a) + $b’, a w PHP 8 będzie przetwarzane jako ‘echo „suma: ” . ($a + $b)’.
- sprawdzanie operacji arytmetycznych i bitowych, na przykład wyrażenia „[] % [42]” i „$object + 4” będą prowadzić do błędu.
- stabilny algorytm sortowania, w którym przy różnych uruchomieniach zachowany jest porządek występowania identycznych wartości.
Źródło: opennet.ru
