【发布时间】:2015-07-07 17:22:11
【问题描述】:
我在手册中搜索error_reporting。在那里我找到了一个示例,它列出了浏览器窗口中的所有错误报告级别。我浏览了代码,有些编码风格对我来说似乎很陌生,我无法理解它到底是做什么的。
在手册中,它说error_reporting ()返回:
如果没有级别,则返回旧的
error_reporting level或当前级别 给定参数
我知道error_reporting(level) 决定显示或不显示哪种类型的错误。但是当它被分配给一个变量时它会返回什么?像下面这样:
$errLvl = error_reporting();
我打印了$errLvl,它返回了22527。我不明白这是什么意思?谁能用简单的英语给我解释一下?
有一个名为FriendlyErrorType($type) 的函数将接受错误类型并在浏览器中打印。但它被赋予了一个参数($errLvs & pow(2,i))。 & 操作员应该做什么?我的意思是&运算符在参数中的作用是什么?
print FriendlyErrorType($errLvl & pow(2, $i))
完整代码:
$errLvl = error_reporting();
echo $errLvl.'</br>';
for ($i = 0; $i < 15; $i++ ) {
print FriendlyErrorType($errLvl & pow(2, $i)) . "<br>\\n";
}
function FriendlyErrorType($type)
{
switch($type)
{
case E_ERROR: // 1 //
return 'E_ERROR';
case E_WARNING: // 2 //
return 'E_WARNING';
case E_PARSE: // 4 //
return 'E_PARSE';
case E_NOTICE: // 8 //
return 'E_NOTICE';
case E_CORE_ERROR: // 16 //
return 'E_CORE_ERROR';
case E_CORE_WARNING: // 32 //
return 'E_CORE_WARNING';
case E_COMPILE_ERROR: // 64 //
return 'E_COMPILE_ERROR';
case E_COMPILE_WARNING: // 128 //
return 'E_COMPILE_WARNING';
case E_USER_ERROR: // 256 //
return 'E_USER_ERROR';
case E_USER_WARNING: // 512 //
return 'E_USER_WARNING';
case E_USER_NOTICE: // 1024 //
return 'E_USER_NOTICE';
case E_STRICT: // 2048 //
return 'E_STRICT';
case E_RECOVERABLE_ERROR: // 4096 //
return 'E_RECOVERABLE_ERROR';
case E_DEPRECATED: // 8192 //
return 'E_DEPRECATED';
case E_USER_DEPRECATED: // 16384 //
return 'E_USER_DEPRECATED';
}
return "";
【问题讨论】:
-
你知道什么是比特吗?如何在字节/整数中设置/获取位?
-
我知道。但是在这里我们必须发送一个参数。按位运算符需要在那里?
-
也许可以编辑您的问题以显示(澄清)您了解
&运算符做什么 以及它是什么,但实际上不知道为什么该代码的那部分是否需要它? -
@Lashane 啊,好的,感谢您的更正。 (我删除了评论)
-
@AL-zami 阅读 en.wikipedia.org/wiki/Mask_%28computing%29 它会让你了解什么是面具
标签: php function error-reporting