22. tháng 2 2025
Hôm nay, khi đang xem một đoạn mã PHP, tôi đã phát hiện ra một cách viết khá lạ lẫm. Cụ thể là có một ký tự at (@) được đặt ngay trước dấu đô-la ($) của biến.
Theo tài liệu chính thức của PHP:
PHP hỗ trợ một toán tử kiểm soát lỗi mang tên: @. Khi đặt nó trước một biểu thức PHP bất kỳ, mọi thông báo lỗi có thể xảy ra từ biểu thức đó sẽ bị bỏ qua. Từ tài liệu này, rõ ràng rằng cách sử dụng @ trong đoạn mã mà tôi nhìn thấy là không đúng chuẩn.
Để hiểu rõ hơn về tác động của @, bắn cá miễn phí tôi đã tiến hành kiểm tra với hai trường hợp sau:
1$file = file('non_existent_file');
2$name = "từ khóa at trong PHP";
3echo $name;
Kết quả thực thi:
> php test.php
PHP Warning: file(non_existent_file): failed to open stream: No such file or directory in /mnt/d/to_del/test.php on line 3
từ khóa at trong PHP
Như chúng ta có thể thấy, khi không dùng @, hệ thống sẽ hiển thị cảnh báo về việc không tìm thấy tệp tin.
1$file = @file('non_existent_file');
2$name = "từ khóa at trong PHP";
3echo $name;
Kết quả thực thi:
> php test.php
từ khóa at trong PHP
Trong trường hợp này, khi thêm @ trước biểu thức, tất cả các thông báo lỗi đều bị ức chế và không hiển thị lên màn hình.
Mặc dù ký hiệu @ giúp ẩn đi các thông báo lỗi, nhưng việc lạm dụng nó có thể gây khó khăn trong việc gỡ lỗi chương trình. Thay vì sử dụng @ để im lặng các lỗi, các lập trình viên nên:
Việc áp dụng các phương pháp xử lý lỗi chuyên nghiệp sẽ giúp cải thiện chất lượng mã nguồn và dễ dàng bảo trì hơn trong tương lai.