Join them; it only takes a minute: Sign up Suppress error with @ operator in PHP [closed] up vote 51 down vote favorite 28 In your opinion, is it ever valid You can accomplish the same thing with $result = @native_func(); and if($result) w/o that ugly ass mess. For example, the fopen() command returns FALSE if the file cannot be opened. Short answer: NO!!!!!!!!!!!!!!!!!!!!
It works in the example because E_ALL is guaranteed to have the bit for E_NOTICE set, so when ^ flips that bit, it is in fact turned off. & ~ (and Nov 3 '15 at 23:50 | show 1 more comment up vote 8 down vote If you don't want a warning thrown when using functions like fopen(), you can suppress the In that case, if it's not set the conditional will still be triggered.
I've found this useful when I want to check a value that might not exist:
We started browsing through our code and found that the mysql_connect() call was prepended by the @-operator to hide possible connection warnings/errors from our users. Perhaps the file isn't readable. maybe you didn't read the full text of "is evil". "There may be a good reason for it, but I'm yet to see one, so until that day it's my opinion Philippine Peso Sign If I'm trying to debug it then I would remove the error suppression, but in a live site, I disagree that the full error should be displayed. –user107146 Nov 28 '13
If so, in what circumstances would you use this? When I run it, a warning message appears. This is much slower as it requires a hash lookup. Related 1What is the best way to get the errors from a production site in PHP?369How to get useful error messages in PHP?211Can I try/catch a warning?4Display custom error page on
php warnings share|improve this question edited Aug 25 '14 at 20:02 Mark Amery 24.2k12119150 asked Jan 1 '10 at 0:32 Jahandideh AR 1,72552041 add a comment| 7 Answers 7 active oldest But what if the URL is no longer valid? Php Suppress Warning B picks up a random file from a directory and sends information from this file to C. Php Currency Symbol Each one require appropriate action.
For PHP 3, this will be the first 4 E_xxx constants. And yes there is a way both in php.ini and within your script to remove errors (but only do this when you are in a live environment and log your errors Hot Network Questions Why are planets not crushed by gravity? If you can solve the problem, great, do so. Php.ini Error Reporting
In this specific use case, that's exactly what the user wants. All Rights Reserved. If I'm wrong on this then I'd love to hear why. You could as well say "unlink is evil, you can delete files with it so don't ever use unlink".
It's a valid point that the @ operator hides all errors
Think about it, your app fails, corrupts data... Php Display_errors While error reporting is for programmer, who desperately need to know what certainly happened. The “Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: No such host is known.
For instance, you can prepend it to variables, function and include calls, constants, and so forth. Create an fopen wrapper function. –Gerry Jan 28 '12 at 4:49 I was tempted to plus you 1 just because you are Jason Cohen. I was saying I was yet to find such a context. Php Hide Errors Longer more correct answer: I don't know as I don't know everything, but so far I haven't come across a situation where it was a good solution.
I see lots of comments about avoiding this, but imagine the following… You have a webpage, A, that is displaying a PHP image, B. Here, the second script (using the @ operator) takes 1.75x as long to execute...almost double the time of the first script.
So while yes, there is some overhead, If that line triggers an error, the error handler will still be called, but it will be called with an error level of 0
Hope this helps someone up down I once spent way too long tracking down a database problem - I was seeing Close() failures, and nothing was working.
So the good practice is to handle the errors at different levels eg at highest level you may handle the error by just loggin the actual error and showing a simple It has not only one "file not found" value.