本篇文章給大家分享的是有關(guān)如何在php中定義錯(cuò)誤提示,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
十年的德安網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整德安建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“德安網(wǎng)站設(shè)計(jì)”,“德安網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
php怎么自定義錯(cuò)誤提示?
PHP set_error_handler()
:自定義錯(cuò)誤處理函數(shù)
PHP 中提供一個(gè) set_error_handler() 函數(shù),使用該函數(shù)可以指定另一個(gè)函數(shù)作為錯(cuò)誤處理函數(shù),其語法如下:
set_error_handler(callable $error_handler [, int $error_types = E_ALL | E_STRICT ])
參數(shù)說明
1) $error_handler 是用戶自定義的函數(shù)名稱,除了可以傳入函數(shù)名,還可以傳入 NULL 重置處理程序到默認(rèn)狀態(tài),還可以傳入引用對(duì)象和對(duì)象方法名的數(shù)組。
用戶自定義函數(shù)的格式如下:
error_handler(int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]])
其中:
第一個(gè)參數(shù) $errno 表示錯(cuò)誤的級(jí)別,是一個(gè) integer 類型;
第二個(gè)參數(shù) $errstr 表示錯(cuò)誤的信息,是一個(gè) string 類型;
第三個(gè)參數(shù) $errfile 是一個(gè)可選參數(shù),表示發(fā)生錯(cuò)誤的文件名,是一個(gè) string 類型;
第四個(gè)參數(shù) $errline 也是一個(gè)可選參數(shù),表示發(fā)生錯(cuò)誤的行號(hào),是一個(gè) integer 類型;
第五個(gè)參數(shù) $errcontext 同樣是一個(gè)可選參數(shù)(在 PHP7.2.0 之后被棄用),表示錯(cuò)誤發(fā)生時(shí)活動(dòng)符號(hào)表的 array。也就是說 $errcontext 會(huì)包含錯(cuò)誤觸發(fā)處作用域內(nèi)所有變量的數(shù)組。用戶的錯(cuò)誤處理程序不應(yīng)該修改錯(cuò)誤上下文(context)。
注意:如果 set_error_handler() 函數(shù)返回 FALSE,標(biāo)準(zhǔn)錯(cuò)誤處理程序?qū)?huì)繼續(xù)調(diào)用。
2) $error_types 參數(shù)就像配置文件 php.ini 中 error_reporting 能夠控制錯(cuò)誤的顯示一樣,此參數(shù)能夠用于屏蔽 $error_handler 的觸發(fā)。如果沒有該掩碼,無論 $error_reporting 是如何設(shè)置的,$error_handler 都會(huì)在每個(gè)錯(cuò)誤發(fā)生時(shí)被調(diào)用。
如果之前有定義過錯(cuò)誤處理程序,則返回該程序名稱;如果是內(nèi)置的錯(cuò)誤處理程序,則返回 NULL。如果指定了一個(gè)無效的回調(diào)函數(shù),同樣會(huì)返回 NULL。如果之前的錯(cuò)誤處理程序是一個(gè)類的方法,此函數(shù)會(huì)返回一個(gè)帶類和方法名的索引數(shù)組(indexed array)。
【示例】自定義一個(gè)錯(cuò)誤處理函數(shù),并使用它來處理程序中的錯(cuò)誤。
"; echo "error msg:".$errstr."
"; echo "error file:".$errfile."
"; echo "error line:".$errline."
"; die('something error'); } set_error_handler("error_handler"); strpos(); ?>
運(yùn)行結(jié)果如下:
error number:2 error msg:strpos() expects at least 2 parameters, 0 given error file:D:\WWW\index.php error line:10 something error
注意:使用這種方式進(jìn)行錯(cuò)誤處理,如果沒有在錯(cuò)誤處理函數(shù)中終止程序的執(zhí)行,程序?qū)?huì)繼續(xù)執(zhí)行發(fā)生錯(cuò)誤的下一行,所以需要使用 die() 函數(shù)來終止程序的運(yùn)行。
另外需要注意的是,這種錯(cuò)誤處理方式并不能接管所有級(jí)別的程序錯(cuò)誤,E_ERROR、E_PARSE、E_CORE_ERROR、E_CORE_WARNING、E_COMPILE_ERROR、E_COMPILE_WARNING 以及 E_STRICT 部分的錯(cuò)誤將會(huì)以最原始的形式顯示出來。
set_error_handler() 進(jìn)階
PHP 的異常處理機(jī)制不完善,無法自動(dòng)拋出異常,用戶也可使用 set_error_handler() 這種方式將異常當(dāng)作錯(cuò)誤來處理,這樣用戶就可以使用自定義的錯(cuò)誤處理函數(shù)來自動(dòng)捕獲異常了。
【示例】使用自定義的錯(cuò)誤處理函數(shù)來自動(dòng)捕獲異常。
"; echo "error msg:".$errstr."
"; echo "error file:".$errfile."
"; echo "error line:".$errline."
"; die('something error'); } set_error_handler("error_handler"); /* 觸發(fā)異常 */ try { $a = 5/0; echo $a; } catch(Exception $e) { echo $e->getMessage(); } ?>
運(yùn)行結(jié)果如下:
error number:2 error msg:Division by zero error file:D:\WWW\index.php error line:12 something error
以上就是如何在php中定義錯(cuò)誤提示,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。