版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PHP錯誤機制的總結PHP 的錯誤機制也是非常復雜的,也沒有仔細總結過,現(xiàn)在就為你補上這一課。下面是由為大家的 PHP錯誤機制總結,喜歡的可以收藏一下!了解更多詳情資訊,請關注 !特別說明:文章的 PHP版本使用PHP 的錯誤級別首先需要了解php有哪些錯誤。截至到 php5.5,一共有16個錯誤級別注意:嘗試下面的代碼的時候請確保打開 error_log:error_reporting(E_ALL);ini_set('display_errors','On');E_ERROR這種錯誤是致命錯誤,會在頁面顯示 FatalError ,當出現(xiàn)這種錯誤的時候,程序就無法繼續(xù)執(zhí)行下去了錯誤示例://Fatalerror:Calltoundefinedfunctionhpinfo()in/tmp/php/index.phponline5hpinfo();//E_ERROR注意,如果有未被捕獲的異常,也是會觸發(fā)這個級別的。//Fatalerror:Uncaughtexception'Exception'withmessage'testexception'in/tmp/php/index.php:5Stacktrace:#0{main}thrownin/tmp/php/index.phponline5thrownewException("testexception");E_WARNING這種錯誤只是警告,不會終止腳本,程序還會繼續(xù)進行,顯示的錯誤信息是Warning。比如include 一個不存在的文件。//Warning:include(a.php):failedtoopenstream:Nosuchfileordirectoryin/tmp/php/index.phponline7//Warning:include():Failedopening'a.php'forinclusion(include_path='.:/usr/share/pear:/usr/share/php')in/tmp/php/index.phponline7include("a.php");//E_WARNINGE_NOTICE這種錯誤程度更為輕微一些,提示你這個地方不應該這么寫。這個也是運行時錯誤,這個錯誤的代碼可能在其他地方?jīng)]有問題, 只是在當前上下文情況下出現(xiàn)了問題。比如$b變量不存在,我們把它賦值給另外一個變量//Notice:Undefinedvariable:bin/tmp/php/index.phponline9$a=$b;//E_NOTICEE_PARSE這個錯誤是編譯時候發(fā)生的,在編譯期發(fā)現(xiàn)語法錯誤,不能進行語法分析。比如下面的z沒有設置為變量。//Parseerror:syntaxerror,unexpected'='in/tmp/php/index.phponline20z=1;//E_PARSEE_STRICT這個錯誤是PHP5之后引入的,你的代碼可以運行,但是不是PHP建議的寫法。比如在函數(shù)形參傳遞++符號//StrictStandards:Onlyvariablesshouldbepassedbyreferencein/tmp/php/index.phponline17functionchange(&$var){$var+=10;}$var=1;change(++$var);//E_STRICTE_RECOVERABLE_ERROR這個級別其實是 ERROR級別的,但是它是期望被捕獲的,如果沒有被錯誤處理捕獲,表現(xiàn)和 E_ERROR是一樣的。經(jīng)常出現(xiàn)在形參定義了類型,但調用的時候傳入了錯誤類型。它的錯誤提醒也比 E_ERROR的fatalerror 前面多了一個Catachable的字樣。//Catchablefatalerror:Argument1passedtotestCall()mustbeaninstanceofA,instanceofBgiven,calledin/tmp/php/index.phponline37anddefinedin/tmp/php/index.phponline33classA{}classB{}functiontestCall(A$a){}$b=newB();testCall($b);E_DEPRECATED這個錯誤表示你用了一個舊版本的函數(shù),而這個函數(shù)后期版本可能被禁用或者不維護了。比如curl 的CURLOPT_POSTFIELDS使用@FILENAME來上傳文件的方法//Deprecated:curl_setopt():Theusageofthe@filenameAPIforfileuploadingisdeprecated.PleaseusetheCURLFileclassinsteadin/tmp/php/index.phponline42$ch=curl_init(".remotesite./upload.php");curl_setopt($ch,CURLOPT_POSTFIELDS,array('fileupload'=>'@'."test"));E_CORE_ERROR,E_CORE_WARNING這兩個錯誤是由PHP的引擎產(chǎn)生的,在PHP初始化過程中發(fā)生。E_PILE_ERROR,E_PILE_WARNING這兩個錯誤是由 PHP引擎產(chǎn)生的,在編譯過程中發(fā)生。E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE,E_USER_DEPRECATED,這些錯誤都是用戶制造的,使用 trigger_error ,這里就相當于一個口子給用戶觸發(fā)出各種錯誤類型。這個是一個很好逃避trycatch 異常的方式。trigger_error("Cannotdividebyzero",E_USER_ERROR);//E_USER_ERROR//E_USER_WARING//E_USER_NOTICE//E_USER_DEPRECATEDE_ALLE_STRICT 出外的所有錯誤和警告信息。錯誤控制php 中有很多配置和參數(shù)是可以控制錯誤,以及錯誤的日志顯示的。第一步,我們需要了解的是 php中的有關錯誤的配置有哪些 ?我們按照php+php-fpm的模型來說,會影響 php錯誤顯示的其實是有兩個配置文件,一個是 php本身的配置文件 php.ini ,另外一個是php-fpm的配置文件,php-fpm.conf。php.ini 中的配置error_reporting=E_ALL// 報告錯誤級別,什么級別的error_log=/tmp/php_errors.log//php 中的錯誤顯示的日志位置display_errors=On// 是否把錯誤展示在輸出上,這個輸出可能是頁面,也可能是
stdoutdisplay_startup_errors=On//示在頁面上,記得上面說
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年秈米訂購合同3篇
- 2025年度綠色建筑商品房建筑工程施工監(jiān)理合同5篇
- 2024有關設備購銷合同
- 2024無房產(chǎn)證房屋使用權轉讓與物業(yè)管理服務合同3篇
- 2025年度全國連鎖餐飲品牌標準化轉讓合同范本共4冊3篇
- 2025年度生物醫(yī)藥研發(fā)合作與股權投資合同3篇
- 無人機配送物流服務合同
- 2025年度水廠應急救援能力建設承包合同3篇
- 2024年股權轉讓合同標的股權轉讓服務合同
- 二零二五年度房地產(chǎn)項目廉政建設合同樣本3篇
- 鋼材深加工行業(yè)現(xiàn)狀分析報告
- 香港朗文英語2B期中試卷
- 慢性乙肝護理查房課件
- 林區(qū)防火專用道路技術規(guī)范
- 纜機安裝方案課件
- 小學開展“鑄牢中華民族共同體意識”主題系列活動總結
- 會展旅游實務全套教學課件
- 非標設計最強自動計算-分割器計算
- 第五單元整體教學設計-統(tǒng)編版高中語文必修下冊
- 小班音樂教案:小瓢蟲飛教案及反思
- 危險化學品經(jīng)營企業(yè)安全評價細則
評論
0/150
提交評論