error_reporting

(PHP 4, PHP 5, PHP 7, PHP 8)

error_reporting設(shè)置應(yīng)該報(bào)告何種 PHP 錯(cuò)誤

說明

error_reporting(int $level = ?): int

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

參數(shù)

level

新的 error_reporting 級(jí)別。 可以是一個(gè)位掩碼也可以是一個(gè)已命名的常量。 強(qiáng)烈建議使用已命名的常量,以確保兼容將來的版本。 由于錯(cuò)誤級(jí)別的添加、整數(shù)取值范圍的增加, 較久的基于整數(shù)的錯(cuò)誤級(jí)別不會(huì)總是和預(yù)期的表現(xiàn)一致。

可用的錯(cuò)誤級(jí)別常量及其實(shí)際含義描述在了 predefined constants 中。

返回值

返回舊的 error_reporting 級(jí)別,或者在 level 參數(shù)未給出時(shí)返回當(dāng)前的級(jí)別。

更新日志

版本 說明
5.4.0 E_STRICT 成為 E_ALL 的一部分
5.3.0 引入 E_DEPRECATEDE_USER_DEPRECATED
5.2.0 引入 E_RECOVERABLE_ERROR。

范例

示例 #1 error_reporting() 范例

<?php

// 關(guān)閉所有PHP錯(cuò)誤報(bào)告
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR E_WARNING E_PARSE);

// 報(bào)告 E_NOTICE也挺好 (報(bào)告未初始化的變量
// 或者捕獲變量名的錯(cuò)誤拼寫)
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ò)誤 (參見 changelog)
error_reporting(E_ALL);

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

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

?>

注釋

警告

雖然 error_reporting 增強(qiáng)了 包含 E_STRICT 錯(cuò)誤的能力(反之亦然),但大多數(shù) E_STRICT 的錯(cuò)誤是在編譯時(shí)被評(píng)估的, 所以不會(huì)在文件中被報(bào)告。

小技巧

傳入 -1 的值將盡可能顯示所有錯(cuò)誤, 甚至包括將來 PHP 可能加入的新的錯(cuò)誤級(jí)別和常量。 至 PHP 5.4,常量 E_ALL 有同樣的行為。

參見