php里@错误抑制符只是不显示错误信息,但是错误信心还是能被set_error_handle()函数捕获到。
举个例子:
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
echo $errno, $errmsg, $filename, $linenum, <span style="font-family: Arial, Helvetica, sans-serif;">$vars</span><span style="font-family: Arial, Helvetica, sans-serif;">;</span>
}
set_error_handler("userErrorHandler");
@file_get_contents('/tmp/app.log');
运行结果:
2file_get_contents(/tmp/app.log): failed to open stream: No such file or directory/tmp/2850a98a-0f5f-4a2b-a4e7-2c7e2ad289a7/code12Array
说明加了@,错误信息还是被userErrorHandler()抓到了。