php错误报告-分别使用0和1禁用然后启用将不起作用
PHP代码段:php错误报告-分别使用0和1禁用然后启用将不起作用,php,error-handling,Php,Error Handling,PHP代码段: <?php error_reporting(0); $a; echo ' a = '.$a.'<br>'; error_reporting(1); echo ' b= '.$b; ?> 没有任何通知 我希望错误报告(1)能够显示错误。但是如果我使用error\u reporting(E\u ALL),它会显示未定义变量b的通知 问题是: 1) 如果参数为0或false则错误被抑制,那么为什么1或true将以相反的方式工作 2) 文档中提到的
<?php
error_reporting(0);
$a;
echo ' a = '.$a.'<br>';
error_reporting(1);
echo ' b= '.$b;
?>
没有任何通知
我希望错误报告(1)
能够显示错误。但是如果我使用error\u reporting(E\u ALL)
,它会显示未定义变量b
的通知
问题是:
1) 如果参数为0或false
则错误被抑制,那么为什么1或true
将以相反的方式工作
2) 文档中提到的0或false
可以作为参数传递,而我发现E_ALL
可以作为参数使用?期望$level
表示不同的级别。要启用有关未定义变量的通知,请将E_ALL
和E_STRICT
组合使用:
error_reporting(E_ALL | E_STRICT);
(在PHP5.4中,您可以省略E_STRICT
,因为它包含在E_ALL
中)。使用整数0
只意味着禁用了所有选项
根据您的ini设置,您可能还希望启用错误显示-为了进行调试,请在生产环境中禁用它:
ini_set('display_errors', 1);
示例:
ini_set('display_errors', 1);
error_reporting(0);
echo $a;
error_reporting(E_ALL | E_STRICT);
echo $b;
当您试图访问未定义的$b时,上面的示例将显示一个通知。error\u reporting(1)
与error\u reporting(E\u error)
等效,这意味着您将只从PHP激活错误报告在您的情况下,您必须编写
error\u reporting(E\u NOTICE)
以查看来自PHP的消息您可以结合多种类型的报告
错误报告(E|u error | E|u WARNING | E|u PARSE | E|u NOTICE)
要重新激活所有类型的错误和警告,您可以编写
错误报告(-1)
希望它有帮助只是找不到我在作品中提到的两个问题的答案。只需按照我提供的链接进行操作。我还解释了为什么你可以通过0。如果通过
false
,PHP将自动将值转换为0
。我找不到为什么error\u reporting(1)
不起作用的答案,php文档站点中的0
或false
被称为参数。你知道什么是位字段吗?让我理解这个术语。我提到了两个问题,即1和2,无法理解这些问题的答案。
ini_set('display_errors', 1);
error_reporting(0);
echo $a;
error_reporting(E_ALL | E_STRICT);
echo $b;