国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php錯(cuò)誤處理之錯(cuò)誤報(bào)告級(jí)別

錯(cuò)誤報(bào)告級(jí)別

錯(cuò)誤類型

php大家最常見的錯(cuò)誤顯示截圖,本書幫大家進(jìn)行了總結(jié):

【掌握級(jí)別的錯(cuò)誤類型】?我們將最常用的錯(cuò)誤分為了三種:

錯(cuò)誤類型說(shuō)明
E_ERROR錯(cuò)誤,文件直接中斷
E_WARNING警告,問(wèn)題比較嚴(yán)重。但是還會(huì)繼續(xù)向下運(yùn)行
E_NOTICE提示,有些小問(wèn)題不會(huì)影響到程序。常發(fā)生在項(xiàng)目未定義
E_PARSE編譯時(shí)語(yǔ)法解析錯(cuò)誤。解析錯(cuò)誤僅僅由分析器產(chǎn)生。
E_ALL所有的錯(cuò)誤
E_STRICT啟用PHP對(duì)代碼的修改建議,以確保代碼具有最佳的互操作性和向前兼容性。
E_DEPRECATED啟用后將會(huì)對(duì)在未來(lái)版本中可能無(wú)法正常工作的代碼給出警告。


在上面的幾種類型中:

error最嚴(yán)重,必須要解決。不然程序無(wú)法繼續(xù)向下執(zhí)行

warning也很重要。通也必須要解決。如果明確的,故意的可以不用處理。

notice 你可以不用管。但是在有些公司,項(xiàng)目標(biāo)準(zhǔn)特別高。在高標(biāo)準(zhǔn)要求的項(xiàng)目中也必須要解決。因?yàn)椋琻otice會(huì)影響到PHP的執(zhí)行效率。通常發(fā)生在函數(shù)未定義等。

parse錯(cuò)誤,是指語(yǔ)法錯(cuò)寫錯(cuò)了,必須要解決

代表全部類型的所有錯(cuò)誤

【了解級(jí)別的錯(cuò)誤類型】?再?gòu)倪@三種擴(kuò)展出來(lái)了另外一些需要了解的錯(cuò)誤項(xiàng):

錯(cuò)誤類型錯(cuò)誤說(shuō)明
E_CORE_ERROR在PHP初始化啟動(dòng)過(guò)程中發(fā)生的致命錯(cuò)誤。該錯(cuò)誤類似E_ERROR,但是是由PHP引擎核心產(chǎn)生的
E_CORE_WARNINGPHP初始化啟動(dòng)過(guò)程中發(fā)生的警告 (非致命錯(cuò)誤) 。類似 E_WARNING,但是是由PHP引擎核心產(chǎn)生的。
E_COMPILE_ERROR致命編譯時(shí)錯(cuò)誤。類似E_ERROR,但是是由Zend腳本引擎產(chǎn)生的。
E_COMPILE_WARNING編譯時(shí)警告(非致命錯(cuò)誤)。類似E_WARNING,但是是由Zend腳本引擎產(chǎn)生的
E_USER_ERROR用戶自定義錯(cuò)誤
E_USER_WARNING用戶自定義警告
E_USER_NOTICE用戶自定義提示
E_USER_DEPRECATED用戶產(chǎn)少的警告信息。類似E_DEPRECATED,但是是由用戶自己在代碼中使用PHP函數(shù)trigger_error()來(lái)產(chǎn)生的。
E_RECOVERABLE_ERROR可被捕捉的致命錯(cuò)誤。它表示發(fā)生了一個(gè)可能非常危險(xiǎn)的錯(cuò)誤,但是還沒有導(dǎo)致PHP引擎處于不穩(wěn)定的狀態(tài)。


在學(xué)習(xí)過(guò)程中,上面的類型了解即可。因?yàn)榛静粫?huì)遇到,遇到了大家查一下本書或者查一下手冊(cè)就清楚了。

error_reporting 報(bào)告錯(cuò)誤類型

error_reporting 是指錯(cuò)誤報(bào)告。在php.ini中也有這樣一個(gè)參數(shù)。這個(gè)參數(shù)。決定了PHP引擎記錄、報(bào)告、顯示哪些錯(cuò)誤類型。

一、 在php.ini中error_reporting參數(shù)。如若error_reporting參數(shù)設(shè)置為0。整個(gè)PHP引擎發(fā)錯(cuò)誤均不會(huì)顯示、輸出、記錄。在下一章將要講到的日志記錄中,也不會(huì)記錄。

如果我們想顯示所有錯(cuò)誤可以寫上

error_reporting = E_ALL

想要顯示所有錯(cuò)誤但排除提示,可以將這個(gè)參數(shù)寫為:

error_reporting = E_ALL & ~ E_NOTICE

顯示所有錯(cuò)誤,但排除提示、兼容性和未來(lái)兼容性??蓪憺椋?/strong>

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

二、在有些情況下我們無(wú)權(quán)限操作php.ini文件,又想要控制error_reporting怎么辦呢?

在運(yùn)行的xxxx.php文件中開始處,我們可以使用error_reporting()函數(shù)灰達(dá)到目標(biāo)。

演示代碼如下:

<?php

//關(guān)閉了所有的錯(cuò)誤顯示
error_reporting(0);


//顯示所有錯(cuò)誤
//error_reporting(E_ALL);

//顯示所有錯(cuò)誤,但不顯示提示
//error_reporting(E_ALL & ~ E_NOTICE);
?>

上面的代碼你可以試試,故意寫錯(cuò)代碼看看。在當(dāng)前文件中還會(huì)不會(huì)顯示指定的錯(cuò)誤。

[擴(kuò)展、了解知識(shí)點(diǎn)]:?@ 符是我們之前學(xué)習(xí)過(guò)的單行不顯示錯(cuò)誤,請(qǐng)不用或者少用@符。

我們拿讀取一個(gè)不存在的文件,這樣的php代碼來(lái)演示實(shí)現(xiàn)過(guò)程:

<?php
//讀取一個(gè)不存在的adsaf.txt文件,用@符抑制錯(cuò)誤
@$fp = fopen('adsaf.txt','r');
?>

@符效率較低,它在php內(nèi)核中的實(shí)現(xiàn)過(guò)程是:

<?php
//關(guān)閉錯(cuò)誤
error_reporting(0);

//讀取一個(gè)不存在的文件,顯示錯(cuò)誤

//顯示錯(cuò)誤
error_reporting(E_ALL & ~ E_NOTICE);
?>


繼續(xù)學(xué)習(xí)
||
<?php //關(guān)閉錯(cuò)誤 error_reporting(0); //讀取一個(gè)不存在的文件,顯示錯(cuò)誤 //顯示錯(cuò)誤 error_reporting(E_ALL & ~ E_NOTICE); ?>
提交重置代碼