欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

php語(yǔ)言

PHP學(xué)習(xí)入門(mén)之PHP錯(cuò)誤處理

時(shí)間:2025-04-30 15:10:37 php語(yǔ)言 我要投稿
  • 相關(guān)推薦

PHP學(xué)習(xí)入門(mén)之PHP錯(cuò)誤處理

  PHP語(yǔ)言語(yǔ)法和C語(yǔ)言相似,有C語(yǔ)言基礎(chǔ)的學(xué)習(xí)起來(lái)難度應(yīng)該不大。在調(diào)試PHP代碼時(shí),你是否有過(guò)一臉悶逼的看著白屏而不知所措的經(jīng)歷?學(xué)習(xí)一門(mén)新的語(yǔ)言,最重要的是要掌握它的錯(cuò)誤處理,調(diào)試的方法。PHP提供了一批錯(cuò)誤處理函數(shù),來(lái)幫助我們調(diào)試,處理程序中出現(xiàn)的錯(cuò)誤。

PHP學(xué)習(xí)入門(mén)之PHP錯(cuò)誤處理

  首先,要了解一下PHP中關(guān)于錯(cuò)誤處理的配置指令

  error_reporting

  這個(gè)指令用來(lái)設(shè)置報(bào)錯(cuò)等級(jí)。它的值可以是整數(shù)也可以是PHP內(nèi)置的表示錯(cuò)誤等級(jí)的常量,具體可以參考PHP手冊(cè)。

  display_errors

  是否要顯示錯(cuò)誤信息作為輸出的一部分輸出到屏幕。它的值可以是布爾值,也可以是stderr,stdout.

  display_startup_errors

  這個(gè)指令主要是作調(diào)試用途。因?yàn)榧词筪isplay_errors指令設(shè)置為真,部分錯(cuò)誤也不會(huì)顯示。它的值是布爾值。

  log_errors

  這個(gè)指令決定將PHP的錯(cuò)誤信息是記錄到服務(wù)器日志還是error_log指定的目標(biāo)。

  現(xiàn)在我們來(lái)了解一下PHP提供的錯(cuò)誤處理相關(guān)函數(shù)

  我在調(diào)試代碼的時(shí)候喜歡在代碼前面加上兩行:

  error_reporting(E_ALL);

  ini_set('display_errors',1);

  ini_set('display_startup_errors', 1);

  這兩行代碼影響的就是PHP關(guān)于錯(cuò)誤處理相關(guān)配置指令中的error_reporting和display_errors 這兩個(gè)配置指令。它將顯示所有的錯(cuò)誤信息到屏幕。但是有時(shí)候我們可能會(huì)發(fā)現(xiàn)這個(gè)不起作用啊,這是什么情況?

  我總結(jié)一下,有這幾種情況:

  第一,你碰到的可能是語(yǔ)法錯(cuò)誤。由于PHP是解釋型語(yǔ)言,因?yàn)檎Z(yǔ)法錯(cuò)誤了,代碼得不到執(zhí)行(語(yǔ)法通不過(guò),來(lái)不及執(zhí)行),那么運(yùn)行時(shí)修改配置就達(dá)不到了,你通常會(huì)看到空白屏,這個(gè)時(shí)候,你可以通過(guò)命令行來(lái)檢查一下代碼的語(yǔ)法。如:

  php -l phpfilename.php

  當(dāng)然,你也可以直接修改php的配置文件的display_erros指令和error_reporting指令,這樣你就可以看到錯(cuò)誤信息提示了。

  第二,你如果是在一個(gè)框架或一個(gè)開(kāi)源的系統(tǒng),比如zend框架,或open cart開(kāi)源商城系統(tǒng)。這兩行代碼修改的配置指令,在框架代碼中可能被重新修改配置過(guò)了。通常一個(gè)成熟的框架和開(kāi)源系統(tǒng)出于安全或其它因素都會(huì)通過(guò)set_error_handler來(lái)修改PHP的默認(rèn)錯(cuò)誤處理機(jī)制。那么,你最好使用他們的調(diào)試排錯(cuò)機(jī)制來(lái)調(diào)試。

  現(xiàn)在來(lái)認(rèn)識(shí)一下重要的set_error_handler函數(shù)。它的作用是向PHP注冊(cè)用戶(hù)自定義的錯(cuò)誤處理函數(shù)。需要注意的是,一旦注冊(cè)了自定義的錯(cuò)誤處理函數(shù),PHP的錯(cuò)誤處理就會(huì)被跳過(guò),error_reporting函數(shù)設(shè)置將沒(méi)有作用,而是由你的函數(shù)來(lái)處理錯(cuò)誤,決定代碼是否繼續(xù)執(zhí)行,除非你的錯(cuò)誤處理函數(shù)返回false。所以,有時(shí)候你會(huì)明明加了那幾行代碼,但是沒(méi)看到任何錯(cuò)誤提示。

  restore_error_handler函數(shù)則是將錯(cuò)誤處理交還給PHP。

  另外兩個(gè)要特別提到的對(duì)調(diào)試非常有幫助的函數(shù)是debug_backtrace和debug_print_backtrace。它們可以提供代碼執(zhí)行過(guò)程中涉及到的函數(shù)調(diào)用,包含文件,哪個(gè)類(lèi),文件第幾行,這些對(duì)調(diào)試非常有用的信息。

  學(xué)習(xí)一門(mén)語(yǔ)言,要從學(xué)習(xí)如何處理,調(diào)試錯(cuò)誤的代碼開(kāi)始,掌握好錯(cuò)誤處理,對(duì)調(diào)試,對(duì)代碼安全趙向陽(yáng)是至關(guān)重要的。

【PHP學(xué)習(xí)入門(mén)之PHP錯(cuò)誤處理】相關(guān)文章:

php學(xué)習(xí)之php配置07-15

php學(xué)習(xí)入門(mén)方法05-23

php學(xué)習(xí)之php預(yù)定義變量07-29

PHP入門(mén)學(xué)習(xí)方法06-26

PHP學(xué)習(xí)入門(mén):菜鳥(niǎo)必看01-10

PHP基礎(chǔ)入門(mén)06-02

php關(guān)于PHP上傳入門(mén)學(xué)習(xí)知識(shí)點(diǎn)07-20

php基礎(chǔ)入門(mén)知識(shí)04-07

php語(yǔ)言基礎(chǔ)入門(mén)02-06