在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP  網(wǎng)絡(luò)安全/ set_error_handler 錯誤攔截是否假設(shè)有 @ 則不報?

set_error_handler 錯誤攔截是否假設(shè)有 @ 則不報?

clipboard.png

有些錯誤是

Undefined index: password

類似這種
我已經(jīng)加上 @不用報錯
但是在 set_error_handler 還是會報錯....
能不能略過有 @ 的?

回答
編輯回答
拮據(jù)

錯誤都是有意義的。

比如這個Undefined index,80%的情況是,有個參數(shù)沒傳進(jìn)來,不在$_GET或者相應(yīng)的數(shù)組里,引用個數(shù)組不存在的東西當(dāng)然就要報錯咯。但你不能為了不想看到就關(guān)掉它,這樣當(dāng)你想debug時,打開error.log一看,干干凈凈,所有應(yīng)該發(fā)生問題的地方全被@給懟掉了,咋辦?到時候只能繞更大的彎。

說回這個問題。其實(shí)解決很簡單的,比如你要取個$_GET['id'],有沒有你可以先去判斷下,既然它是數(shù)組,那么肯定有方法檢測這個鍵名是否存在咯,或者是一個固定的寫法、或者是API,肯定有方法的,那么PHP里就可以用array_key_exists方法先去做個判斷,如果有再取值,沒有給它丟個空字符串或者其它什么標(biāo)識就好了呀!比如:

$userid = array_key_exists('id', $_GET) ? $_GET['id'] : '';
2017年12月6日 14:34