# error_reporting

(PHP 4, PHP 5, PHP 7)

error_reporting — 设置应该报告何种 PHP 错误

### 说明

error_reporting ([ int `$level` ] ) : int

error_reporting() 函数能够在运行时设置 error_reporting 指令。 PHP 有诸多错误级别，使用该函数可以设置在脚本运行时的级别。 如果没有设置可选参数 `level`， error_reporting() 仅会返回当前的错误报告级别。

### 参数

`level`

  新的 error_reporting 级别。 可以是一个位掩码也可以是一个已命名的常量。 强烈建议使用已命名的常量，以确保兼容将来的版本。 由于错误级别的添加、整数取值范围的增加， 较久的基于整数的错误级别不会总是和预期的表现一致。

  可用的错误级别常量及其实际含义描述在了 predefined constants 中。

### 返回值

返回旧的 error_reporting 级别，或者在 `level` 参数未给出时返回当前的级别。

### 更新日志

版本 | 说明
--- | ---
5.4.0 | `E_STRICT` 成为 `E_ALL` 的一部分
5.3.0 | 引入 `E_DEPRECATED` 和 `E_USER_DEPRECATED`。
5.2.0 | 引入 `E_RECOVERABLE_ERROR`。
5.0.0 | 引入 `E_STRICT` (但不包括在 `E_ALL` 之内)。

### 范例

Example #1 error_reporting() 范例

    <?php

    // 关闭所有PHP错误报告
    error_reporting(0);

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

    // 报告 E_NOTICE也挺好 (报告未初始化的变量
    // 或者捕获变量名的错误拼写)
    error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

    // 除了 E_NOTICE，报告其他所有错误
    error_reporting(E_ALL ^ E_NOTICE);

    // 报告所有 PHP 错误 (参见 changelog)
    error_reporting(E_ALL);

    // 报告所有 PHP 错误
    error_reporting(-1);

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

    ?>

### 注释

Warning

虽然 error_reporting 增强了 包含 `E_STRICT` 错误的能力（反之亦然），但大多数 `E_STRICT` 的错误是在编译时被评估的， 所以不会在文件中被报告。

Tip

传入 -1 的值将尽可能显示所有错误， 甚至包括将来 PHP 可能加入的新的错误级别和常量。 至 PHP 5.4，常量 `E_ALL` 有同样的行为。

### 参见

- display_errors 指令
- html_errors 指令
- xmlrpc_errors 指令
- ini_set() - 为一个配置选项设置值