Nowości w PHP 7.4

Data aktualizacji: 4.05.2024r. Autor: Bartosz Stefanicki.

Nowości w PHP 7.4

PHP w wersji 7.4 jest sporą aktualizacją. Postaram się wyszczególnić najciekawsze nowości, które mogą wpłynąć na codzienną pracę programistów.

1. Typowanie właściwości

W poprzednich wersjach języka PHP aby zapewnić zgodność z założeniami, że na przykład dana właściwość będzie stringiem, należało korzystać z setterów i getterów. Wersja 7.4 znacznie upraszcza kod w tym zakresie, ponieważ można deklarować typy.

Wszystkie typy są dozwolone, z wyjątkiem void i callable.

class Foo
{
  public string $name;
  public ?string $username = null;
  public int $age;
  protected static int $height = 182;
  private Foo $prop;
}

Jeżeli będziemy chcieli przypisać do $age np. wartość tekstową "Test", to PHP zwróci nam błąd TypeError.

2. OPcache

Preloading został stworzony w celu zwiększenia wydajności, dzięki niemu aplikacje notują lepsze noty w zakresie szybkości działania. Preloading ładuje kod do OPcache, dzięki czemu pliki z kodem przetwarzane są tylko raz, później są sprawdzane pod kątem zmian. Przy aktualizacji projektu najlepiej zatem wyczyścić cache.

3. array_merge()

Do tego momentu aby połączyć tablice można było skorzystać z array_merge() w ten sposób:

array_merge([1,2,3], [4,5,6]);

W PHP 7.4 można oczywiście dalej korzystać z array_merge(), przy czym można także skorzystać ze skróconego zapisu:

$array1 = [1,2,3];
$array2 = [4,5,6];

$array = [...$array1, ...$array2];

4. array_map()

Na początku sprawdźmy jak do tej pory wyglądało typowe wykorzystanie array_map().

function makeBigger($x) {
  return $x*10;
}

$numbers = [1,2,3];
$biggerNumbers = array_map('makeBigger', $numbers);

Powyższy kod w PHP 7.4 można zapisać krócej:

$numbers = [1,2,3];
$biggerNumbers = array_map(fn($x) => $x*10, $numbers);

Inny przykład:

$userIds = array_map(fn(User $user) => $user->id, $users);

5. Null

PHP 7 wprowadził operator ??. Dzięki niemu można skrótowo zapisać warunek, jeżeli zmienna istnieje (isset) i nie jest null. W innym wypadku zostanie przypisana domyślna wartość, w tym wypadku "Somebody".

$name = $_GET['name'] ?? 'Somebody';

PHP 7.4 wprowadza jeszcze następujący zapis:

$name ??= 'Somebody';

Jeżeli $name nie istnieje i jest pusta, to przypisujemy wartość domyślną "Somebody".

6. Separator w wartościach liczbowych

PHP 7.4 pozwala na rozdzielenie separatorem długich wartości liczbowych, aby były bardziej czytelne. Podkreślenie jest ignorowane.

$unformatted = 123456789.99;
$formatted = 12_3456_789.99;

7. Lista dostępnych metod hashowania

Myślę, że w niektórych wypadkach ciekawa może okazać się także nowość, w postaci zwracanej tablicy dostępnych na serwerze metod hashowania np. hasła:

var_dump(password_algos());

Kalendarz wersji PHP

Zobacz także kalendarz wsparcia wersji PHP. A jakie wy znacie sztuczki z PHP w wersji 7.4?

Kategorie: PHP + MySQL. Tagi: #hosting, #php, #skrypty, #top10. Źródło obrazków: Pixabay, Font awesome.

Zobacz także

Komentarze