Làm cách nào để sử dụng kiểu dữ liệu enum trong PHP?

QCon New York [13-15 tháng 6 năm 2023]. Tìm hiểu các phương pháp hay nhất từ ​​các nhà phát triển cấp cao tại các công ty tiếp hợp sớm

PHP 8 - Các lớp và Enum

Thích In Dấu trang

28 tháng 11 năm 2022 26 phút đọc

qua

  • Deepak Vohra

xét bởi

  • Sergio De Simone

Viết cho InfoQ

Tham gia cộng đồng chuyên gia. Tăng khả năng hiển thị của bạn.
Phát triển sự nghiệp của bạn
Tìm hiểu thêm

Chìa khóa rút ra

  • PHP8. 1 bổ sung hỗ trợ cho các thuộc tính chỉ đọc, làm cho các thuộc tính của lớp trở nên bất biến và không thể sửa đổi
  • PHP8. 0 có một tính năng mới tự động thúc đẩy các tham số hàm tạo lớp thành các thuộc tính lớp tương ứng có cùng tên nếu các tham số hàm tạo được khai báo bằng công cụ sửa đổi khả năng hiển thị và không thuộc loại
    Fatal error: Uncaught Error: Cannot initialize readonly property A::$a from global scope 
    8
  • PHP8. 1 thêm hỗ trợ cho các hằng số giao diện và lớp cuối cùng và cho các hằng số giao diện có thể bị ghi đè.  
  • Kể từ PHP 8. 0, hằng số
    Fatal error: Uncaught Error: Cannot initialize readonly property A::$a from global scope 
    9 đặc biệt có thể được sử dụng trên các đối tượng và kể từ PHP 8. 1 đối tượng có thể được sử dụng trong
     $a->a = 2;
    00
  • PHP8. 1 bổ sung hỗ trợ cho kiểu liệt kê, hoặc gọi tắt là enum, để khai báo một tập hợp liệt kê các giá trị tương tự, mặc dù không giống với, đối tượng lớp
     

Bài viết này là một phần của loạt bài viết "PHP 8. x". Bạn có thể đăng ký để nhận thông báo về các bài viết mới trong loạt bài này qua RSS

PHP tiếp tục là một trong những ngôn ngữ kịch bản được sử dụng rộng rãi nhất trên web với 77. 3% của tất cả các trang web có ngôn ngữ lập trình phía máy chủ được biết là sử dụng nó theo w3tech. PHP 8 mang đến nhiều tính năng mới và những cải tiến khác mà chúng ta sẽ khám phá trong loạt bài viết này

 

    Nội dung được tài trợ có liên quan

  • [eBook] Hiểu về Kubernetes [Phiên bản cập nhật]

Nhà tài trợ liên quan

Điện toán đám mây Akamai dựa trên Linode. Một nền tảng phân phối rộng rãi và thân thiện với nhà phát triển để xây dựng, chạy và bảo mật khối lượng công việc trên đám mây. Bắt đầu dùng thử miễn phí ngay hôm nay

Trong bài viết này, chúng ta sẽ xem xét các tính năng mới của PHP 8 liên quan đến các lớp, bao gồm

  • Enums, một lớp trên các lớp để chỉ định danh sách liệt kê các giá trị có thể có cho một loại
  • Công cụ sửa đổi
     $a->a = 2;
    01 mới cho thuộc tính lớp, làm cho thuộc tính không thể sửa đổi sau khi khởi tạo
  • Quảng cáo tham số hàm tạo, hữu ích để tự động gán giá trị tham số hàm tạo cho một thuộc tính đối tượng

Thuộc tính lớp chỉ đọc

Các nhà phát triển đã tìm cách làm cho các thuộc tính của lớp trở nên bất biến đối với các trường hợp sử dụng, chẳng hạn như các đối tượng giá trị. Thông thường, các thuộc tính phải được khởi tạo một lần, thường là trong một hàm tạo và không bao giờ được sửa đổi. Một giải pháp thay thế đã được sử dụng là đặt một thuộc tính ở chế độ riêng tư và chỉ khai báo một phương thức getter công khai cho nó. Điều này làm giảm phạm vi sửa đổi nhưng không loại trừ sửa đổi. Để tạo bất biến thuộc tính lớp, PHP 8. 1 thêm hỗ trợ cho các thuộc tính chỉ đọc với điều kiện thuộc tính phải được nhập. Một thuộc tính đã nhập thực sự có thể được khai báo chỉ đọc với từ khóa chỉ đọc mới. Tập lệnh sau khai báo một thuộc tính

 $a->a = 2;
01 thuộc loại
 $a->a = 2;
03được gọi là
 $a->a = 2;
04. Giá trị của thuộc tính chỉ được đặt một lần trong hàm tạo. Tập lệnh xuất giá trị 1 khi chạy.  

Chủ Đề