加了@日誌還是記錄到了warning信息

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()抓到了。


其實在設置了set_error_handle()之後,就不需要加@了,錯誤信息已經被捕獲,也不會顯示出來:)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章