什么`!(error_reporting()& $ errorcode)`做(PHP)?

时间:2017-01-04 10:26:38

标签: php error-handling

我正在尝试编写自己的错误报告功能。作为模板,我使用的示例包含此代码段:

if (!(error_reporting() & $errorcode)) {
    return;
}

但它究竟做了什么?我无法理解&符号在error_reporting()和&之间的含义。 $errorcodeerrorcode是函数参数)。 我试图输出error_reporting(),我得到了这个(好像它被称为多个):

int(32767)
Unknown errortype: [8] Undefined variable: kj
int(0)
int(0)
int(0)
int(0)
int(0)
int(0)
int(0)
int(0)

然后我在php.net进行了搜索,发现32767是错误E_ALL,但是在错误代码下面的行中显示为8,这是一个{ {1}} - 错误? 我不知所措,我无法理解。有人能够详细解释这种行为吗?

2 个答案:

答案 0 :(得分:0)

让我们看看PHP文档告诉我们有关error_reporting()的内容。 http://php.net/manual/en/function.error-reporting.php

" error_reporting()函数在运行时设置error_reporting指令。 PHP有许多级别的错误,使用此函数设置脚本持续时间(运行时)的级别。如果未设置可选级别,则error_reporting()将仅返回当前错误报告级别。"

您可以将其传递给不同的"级别",例如:E_ALL。这将显示所有错误。

答案 1 :(得分:0)

如果明确禁用错误报告,则此块将立即返回。当创建错误的代码禁用错误报告时,您不希望调用错误报告。