Хорошие ответы уже были даны о @ операторе , но вот еще пара сведений, которые могут быть полезны вам или кому-то еще:
- Если для отладки вам необходимо отключить
@ operator
, вы можете установить расширение scream - см. Также руководство - что действительно полезно, когда вы поддерживаете какое-то старое приложение, не очень хорошо разработанное / закодированное ^^
- В зависимости от конфигурации PHP (если активирована опция
track_errors
) , вы можете использовать $php_errormsg
для получения последней сообщение об ошибке.
Учитывая этот кусок кода:
// This file doesn't exist
if (!@fopen('/tmp/non-existant-file.txt', 'r')) {
var_dump($php_errormsg);
}
// My Apache server doesn't have the right to read this file
if (!@fopen('/tmp/vboxdrv-Module.symvers', 'w')) {
var_dump($php_errormsg);
}
Вы получите это:
string 'fopen(/tmp/non-existant-file.txt) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory' (length=129)
string 'fopen(/tmp/vboxdrv-Module.symvers) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: Permission denied' (length=122)
Итак, реальные, полезные, содержательные сообщения об ошибках ; -)