Tuesday 11 December 2018

error handling - 'At' symbol before variable name in PHP: @$_POST



I've seen function calls preceded with an at symbol to switch off warnings. Today I was skimming some code and found this:



$hn = @$_POST['hn'];



What good will it do here?


Answer



The @ is the error suppression operator in PHP.




PHP supports one error control
operator: the at sign (@). When
prepended to an expression in PHP, any

error messages that might be generated
by that expression will be ignored.




See:





Update:




In your example, it is used before the variable name to avoid the E_NOTICE error there. If in the $_POST array, the hn key is not set; it will throw an E_NOTICE message, but @ is used there to avoid that E_NOTICE.



Note that you can also put this line on top of your script to avoid an E_NOTICE error:



error_reporting(E_ALL ^ E_NOTICE);

No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...