Property Hooks – nowy wymiar kontroli nad właściwościami
Dzięki Property Hooks możemy definiować zachowanie getterów i setterów bez potrzeby pisania dodatkowych metod. To rozwiązanie pozwala na bardziej przejrzysty i zwięzły kod.
PHP 8.4
<?php
class Locale
{
public string $locale
{
get => $this->first . '_' . $this->second;
set (string $value) {
[$this->first, $this->second] = explode('_', $value);
}
}
public function __construct(
private string $first,
private string $second
){}
}
PHP 8.3
<?php
class Locale
{
public function __construct(
private string $first,
private string $second
) {}
public function getLocale(): string
{
return $this->first . '_' . $this->second;
}
public function setLocale(string $value)
{
[$this->first, $this->second] = explode('_', $value);
}
}
Asymetryczna Widoczność (Asymetric Visiblity) – precyzyjna kontrola dostępu
Nowa funkcjonalność pozwala na różnicowanie poziomu dostępu do właściwości – na przykład publiczny odczyt i prywatny zapis. To idealne rozwiązanie dla twórców frameworków, którzy chcą zapewnić bezpieczeństwo i elastyczność.
PHP 8.4
<?php
class Car
{
public function __construct(
public private(set) string $color,
) { }
public function paint(string $color)
{
$this->color = $color
}
}
$car = new Car('red');
$car->paint('blue');
echo $car->color; //red
PHP 8.3
<?php
class Car
{
public function __construct(
public string $color,
) { }
public function paint(string $color): void
{
$this->color = $color;
}
public function getColor(): string
{
return $this->color;
}
}
$car = new Car('red');
$car->paint('blue');
echo $car->getColor(); //allowed, red
Chcesz zobaczyć więcej praktycznych przykładów? Pobierz darmowy fragment ebooka 📥 lub Kup kurs php 🎓
Nowe funkcje tablicowe – prostsza praca z danymi
Funkcje takie jak array_find
, array_find_key
, array_any
i array_all
ułatwiają manipulację tablicami, co jest nieocenione przy tworzeniu dynamicznych komponentów frameworka.
PHP 8.4
<?php
$data = [1,2,3,5,7,9];
$x = array_find($data, fn(int $val) => $val > 5);//7
$any = array_any($data, fn(int $val) => $val >=9 );//true
PHP 8.3
<?php
$data = [1,2,3,5,7,9];
$x = null;
foreach ($data as $val)
{
if($val > 5) {
$x = $val;
break;
}
}
$any = false;
foreach ($data as $val)
{
if($val >=9) {
$any = true;
break;
}
}
Zamów praktyczny kurs PHP już teraz!
Dowiedz się jak działają współczesne frameworki PHP

Kup teraz 149 zł
Nasz kurs PHP w praktyce to inwestycja w Twoją karierę. Po zakupie zyskasz:
Pełny dostęp do materiałów kursu
Możliwość czytania e-booka online
Przeglądarkę kodu źródłowego z praktycznymi przykładami
Możliwość pobrania w formatach PDF/EPUB/Markdown