Что делает добавление @ перед функцией? Я видел это в некоторых сценариях
пример:
$connect = @mysql_connect('localhost', 'root', 'password'); instead of $connect = mysql_connect('localhost', 'root', 'password');
Подавляет любые ошибки, которые могут произойти внутри функции. Документация здесь .
Учитывая все обстоятельства, это не рекомендуется, поскольку это может привести к некоторым хитрым ошибкам.
это Оператор контроля ошибок , из документации php:
PHP поддерживает один оператор контроля ошибок: знак at (@). При добавлении к выражению в PHP любые сообщения об ошибках, которые могут быть сгенерированы этим выражением, будут игнорироваться . Если вы установили пользовательскую функцию обработчика ошибок с помощью set_error_handler(), то она все равно будет вызываться, но этот пользовательский обработчик ошибок может (и должен) вызвать error_reporting(), который вернет 0, когда вызову, вызвавшему ошибку, предшествовал @. Если функция track_errors включена, любое сообщение об ошибке, сгенерированное выражением, будет сохранено в переменной $php_errormsg. Эта переменная будет перезаписываться при каждой ошибке, поэтому заранее проверьте, хотите ли вы ее использовать.
PHP поддерживает один оператор контроля ошибок: знак at (@). При добавлении к выражению в PHP любые сообщения об ошибках, которые могут быть сгенерированы этим выражением, будут игнорироваться .
@
Если вы установили пользовательскую функцию обработчика ошибок с помощью set_error_handler(), то она все равно будет вызываться, но этот пользовательский обработчик ошибок может (и должен) вызвать error_reporting(), который вернет 0, когда вызову, вызвавшему ошибку, предшествовал @.
set_error_handler()
error_reporting()
Если функция track_errors включена, любое сообщение об ошибке, сгенерированное выражением, будет сохранено в переменной $php_errormsg. Эта переменная будет перезаписываться при каждой ошибке, поэтому заранее проверьте, хотите ли вы ее использовать.
$php_errormsg