溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何在php中顯示錯(cuò)誤級(jí)別

發(fā)布時(shí)間:2021-06-01 16:37:13 來(lái)源:億速云 閱讀:121 作者:Leah 欄目:編程語(yǔ)言

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何在php中顯示錯(cuò)誤級(jí)別,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

警告:生產(chǎn)環(huán)境永遠(yuǎn)都不要顯示任何錯(cuò)誤信息!

顯示錯(cuò)誤(display_errors)和錯(cuò)誤報(bào)告(error_reporting)是兩回事。PHP 腳本發(fā)生錯(cuò)誤時(shí),可以根據(jù)設(shè)置選擇是否報(bào)告這個(gè)錯(cuò)誤(記錄到錯(cuò)誤日志中),如果設(shè)置中開(kāi)啟了 display_errors,則同時(shí)把錯(cuò)誤信息打印到屏幕上。

在代碼中開(kāi)啟并設(shè)置顯示級(jí)別

ini_set() 函數(shù)

對(duì)于 PHP,可以通過(guò) php.ini 文件設(shè)置各種指令。但有時(shí)候需要在腳本運(yùn)行時(shí)設(shè)置指令,那就需要 ini_set() 函數(shù)了。

string ini_set ( string $varname , string $newvalue )

設(shè)置指定配置選項(xiàng)的值。這個(gè)選項(xiàng)會(huì)在腳本運(yùn)行時(shí)保持新的值,并在腳本結(jié)束時(shí)恢復(fù)。

例如:

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 'on');

error_reporting() 函數(shù)

error_reporting() 函數(shù)能夠在運(yùn)行時(shí)設(shè)置 error_reporting 指令。 PHP 有諸多錯(cuò)誤級(jí)別,使用該函數(shù)可以設(shè)置在腳本運(yùn)行時(shí)的級(jí)別。如果沒(méi)有設(shè)置可選參數(shù), error_reporting() 會(huì)返回當(dāng)前的錯(cuò)誤報(bào)告級(jí)別。

PHP7.2 的默認(rèn)值為 E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

在開(kāi)發(fā)階段建議啟用 E_NOTICE 顯示更多可能的錯(cuò)誤。

<?php

// 關(guān)閉所有PHP錯(cuò)誤報(bào)告,相當(dāng)于 ini_set('error_reporting', 0);
error_reporting(0);

error_reporting(E_ERROR | E_WARNING | E_PARSE);

// 報(bào)告 E_NOTICE  (報(bào)告未初始化的變量或捕獲變量名的錯(cuò)誤拼寫(xiě))
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// 除了 E_NOTICE,報(bào)告其他所有錯(cuò)誤
error_reporting(E_ALL ^ E_NOTICE);

// 報(bào)告所有 PHP 錯(cuò)誤 (參見(jiàn) changelog)
error_reporting(E_ALL);

// 報(bào)告所有 PHP 錯(cuò)誤
error_reporting(-1);

// 和 error_reporting(E_ALL); 一樣
ini_set('error_reporting', E_ALL);

修改 php.ini 配置文件

error_reporting = E_ALL # 報(bào)告所有錯(cuò)誤
display_errors = On # 顯示錯(cuò)誤

PHP 預(yù)定義的錯(cuò)誤常量

官網(wǎng)定義了所有的 錯(cuò)誤常量,常用的有:

  • E_STRICT (integer) PHP 對(duì)代碼的修改建議,以確保代碼具有最佳的互操作性和向前兼容性。

  • E_ALL (integer) E_STRICT外的所有錯(cuò)誤和警告信息。

  • E_ERROR (integer) 致命的運(yùn)行時(shí)錯(cuò)誤。這類(lèi)錯(cuò)誤一般是不可恢復(fù)的情況,例如內(nèi)存分配導(dǎo)致的問(wèn)題。后果是導(dǎo)致腳本終止不再繼續(xù)運(yùn)行。

  • E_WARNING (integer) 運(yùn)行時(shí)警告 (非致命錯(cuò)誤)。僅給出提示信息,但是腳本不會(huì)終止運(yùn)行。

  • E_PARSE (integer) 編譯時(shí)語(yǔ)法解析錯(cuò)誤。解析錯(cuò)誤僅僅由分析器產(chǎn)生。

  • E_NOTICE (integer) 運(yùn)行時(shí)通知。表示腳本遇到可能會(huì)表現(xiàn)為錯(cuò)誤的情況,但是在可以正常運(yùn)行的腳本里面也可能會(huì)有類(lèi)似的通知。

上述就是小編為大家分享的如何在php中顯示錯(cuò)誤級(jí)別了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI