What is the use of the @ symbol in PHP?

The at sign (@) is used as error control operator in PHP. When an expression is prepended with the @ sign, error messages that might be generated by that expression will be ignored. If the track_errors feature is enabled, an error message generated by the expression and it will be saved in the variable $php_errormsg. This variable will be overwritten on each error.

Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// File error 
$file_name = @file ('non_existent_file') or
    die ("Failed in opening the file: error: '$errormsg'");
  
// It is used for expression
$value = @$cache[$key];
  
// It will not display notice if the index $key doesn't exist.
  
?>

chevron_right


RunTime Error:



PHP Notice:  Undefined variable: errormsg in /home/fe74424b34d1adf15aa38a0746a79bed.php on line 5

Output:

Failed in opening the file: error: ''

Program 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// Statement 1
$result= $hello['123']
  
// Statement 2
$result= @$hello['123']
?>

chevron_right


It will execute only statement 1 and display the notice message

PHP Notice:  Undefined variable: hello.

Note: The use of @ is very bad programming practice as it does not make error disappear, it just hides them, and it makes debugging a lot worse since we can’t see what’s actually wrong with our code.

References: Error Control Operators



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.