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?
Warto zobaczyć:
Szukasz hostingu?
Jest dużo firm oferujących hosting, ale którą wybrać? Przedstawiamy zestawienie najciekawszych propozycji i ranking hostingów (Październik 2024).