Các @
operator nói với PHP để ngăn chặn các thông báo lỗi, do đó họ sẽ không được hiển thị.
Ví dụ, sử dụng:
$result = mysql_query("this is an invalid query");
sẽ cho kết quả trong một cảnh báo được hiển thị, nói với bạn rằng các truy vấn MySQL là không hợp lệ, trong khi
$result = @mysql_query("this is still an invalid query");
sẽ không được. Tuy nhiên, lưu ý rằng đây là thực hành lập trình rất xấu vì nó không làm cho lỗi biến mất, nó chỉ ẩn chúng, và nó làm cho việc sửa lỗi trở nên tồi tệ hơn rất nhiều vì bạn không thể thấy điều gì thực sự sai với mã của bạn .
Thay vì sử dụng @
, bạn nên tắt error_reporting
và display_errors
chỉ display_errors
trong php.ini
đó là một điều xấu. Không bao giờ sử dụng và loại bỏ mọi thứ bạn tìm thấy. –
Đừng nói "không bao giờ". Tôi có thể nghĩ ra một ví dụ cụ thể với ldap khi kiểm tra thông tin đăng nhập của người dùng. Nếu thông tin đăng nhập thất bại, một lỗi được in và không thể bị mắc kẹt với một try/catch. Điều duy nhất bạn có thể làm là kiểm tra kết quả. Mặc dù thông thường tôi đồng ý với bạn, có các ngoại lệ. – Brad