PHP khai báo declare(strict_types=1); ở đầu file có tác dụng gì?
Trong PHP, khai báo declare(strict_types=1);
ở đầu file có tác dụng bật chế độ kiểm tra kiểu dữ liệu nghiêm ngặt. Điều này có nghĩa là PHP sẽ kiểm tra kiểu dữ liệu của các giá trị đầu vào (argument) và giá trị trả về của hàm hoặc phương thức so với kiểu dữ liệu đã được khai báo trong khai báo hàm. Nếu các giá trị không khớp với các kiểu dữ liệu đã khai báo, PHP sẽ phát sinh lỗi thay vì tự động cố gắng chuyển đổi kiểu dữ liệu (type coercion).
Ví dụ về sử dụng declare(strict_types=1);
declare(strict_types=1);
function add(int $a, int $b): int {
return $a + $b;
}
echo add(1, 2); // Kết quả là 3
echo add(1.5, 2.5); // Sẽ phát sinh lỗi TypeError vì tham số truyền vào không phải là kiểu int
Lợi ích của declare(strict_types=1);
-
Giúp phát hiện lỗi sớm hơn: Bằng cách bật chế độ kiểm tra kiểu dữ liệu nghiêm ngặt, bạn có thể phát hiện sớm các lỗi về kiểu dữ liệu trong quá trình phát triển, thay vì để chúng gây ra lỗi không mong muốn trong quá trình chạy ứng dụng.
-
Tăng tính nhất quán và rõ ràng trong mã nguồn: Khi sử dụng strict types, các hàm và phương thức của bạn sẽ có các kiểu dữ liệu đầu vào và đầu ra rõ ràng và nhất quán, giúp cho mã nguồn dễ đọc và dễ bảo trì hơn.
-
Giảm thiểu lỗi ngầm định từ việc chuyển đổi kiểu dữ liệu tự động: PHP có khả năng tự động chuyển đổi kiểu dữ liệu, điều này có thể gây ra các lỗi khó tìm và không mong muốn. Sử dụng strict types giúp giảm thiểu những lỗi này bằng cách yêu cầu các kiểu dữ liệu phải khớp chính xác.
Lưu ý
- Chế độ strict types chỉ áp dụng cho file mà nó được khai báo. Nếu một file khác gọi hàm từ file này nhưng không khai báo
declare(strict_types=1);
, thì chế độ strict types sẽ không được áp dụng. - Chế độ strict types chỉ áp dụng cho các kiểu dữ liệu khai báo trong hàm và phương thức, không áp dụng cho các phần khác của mã nguồn.
Kết luận
Khai báo declare(strict_types=1);
giúp bạn viết mã nguồn PHP rõ ràng, nhất quán và ít lỗi hơn bằng cách đảm bảo rằng các giá trị đầu vào và giá trị trả về của hàm/phương thức phải khớp chính xác với các kiểu dữ liệu đã khai báo.
Ủng hộ Chung Nguyễn Blog
Chung Nguyễn Blog sử dụng FlashVPS - Dịch vụ quản trị máy chủ chuyên nghiệp để quản lý VPS
#FlashVPS là dịch vụ cloud panel trên nền tảng web hỗ trợ khách hàng:
- * Quản lý máy chủ số lượng nhiều
- * Không có kinh nghiệm quản lý máy chủ
- * Thích sử dụng giao diện web đơn giản, trực quan hơn terminal
- * Quá nhàm chán với việc ghi nhớ và lặp lại việc gõ các câu lệnh
- * Muốn tự động hóa mọi thao tác
- * Muốn tiết kiệm thời gian quản trị máy chủ
- * Muốn tiết kiệm tiền bạc, nhân lực quản trị máy chủ 👉 https://flashvps.dev
Các bài viết trên website thường xuyên được đăng tải và cập nhật trên trang Facebook Chung Nguyễn Blog hãy tặng cho Chung một LIKE nhé! Mãi yêu các bạn!
813 👍
Bình luận