我正在尝试编写自己的错误报告功能。作为模板,我使用的示例包含此代码段:
if (!(error_reporting() & $errorcode)) {
return;
}
但它究竟做了什么?我无法理解&符号在error_reporting()
和&之间的含义。 $errorcode
(errorcode
是函数参数)。
我试图输出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}} - 错误?
我不知所措,我无法理解。有人能够详细解释这种行为吗?
答案 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)
如果明确禁用错误报告,则此块将立即返回。当创建错误的代码禁用错误报告时,您不希望调用错误报告。