Trung bình PHP

PHP 8.4 Property Hooks - Xài Sao Cho Ngon

Khám phá property hooks - tính năng mới toanh của PHP 8.4 giúp gắn logic vào property gọn gàng, đỡ mất công viết magic method.

21 Th06, 2026 2 phút 1,404 Lượt xem 3 Khối code

PHP 8.4 Property Hooks

PHP 8.4 ra mắt property hooks, tính năng xịn sò cho phép nhét thêm logic tùy chỉnh ngay lúc get hoặc set property.

Ví dụ cơ bản

class User
{
    public string $name {
        get => strtoupper($this->name);
        set => ucfirst($value);
    }
}

$user = new User();
$user->name = 'john doe';
echo $user->name; // Kết quả: JOHN DOE

Computed Properties

Tạo property ảo, không cần chỗ lưu trữ riêng:

class Rectangle
{
    public function __construct(
        public float $width,
        public float $height
    ) {}

    public float $area {
        get => $this->width * $this->height;
    }
}

Validate ngay trong setter

class Product
{
    private float $_price;

    public float $price {
        get => $this->_price;
        set {
            if ($value < 0) {
                throw new InvalidArgumentException('Giá phải là số dương');
            }
            $this->_price = $value;
        }
    }
}

Được cái gì

  • ✅ Gọn hơn nhiều so với magic method __get()__set()
  • ✅ IDE support với static analysis ngon hơn hẳn
  • ✅ Code rõ ràng, dễ đọc hơn
  • ✅ Truy cập property mà vẫn type-safe

Property hooks giúp object PHP mạnh mẽ hơn mà vẫn giữ được tương thích ngược!

Cùng chủ đề PHP