禁用PHP错误消息

时间:2014-07-29 03:12:11

标签: php

我正在处理自己的自定义错误处理函数。目前我正在尝试禁用错误报告,因此它不会向公共用户显示错误。但它没有用。

<?php

// Disable error reporting.
ini_set( "error_reporting", 0 );

// Create an error.
echo "hi

?>

返回此错误:

Parse error: syntax error, unexpected end of file, expecting variable (T_VARIABLE) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in C:\xampp\htdocs\websites\sicsportsagency.com\includes\test.php on line 7

我做错了什么?

1 个答案:

答案 0 :(得分:2)

可以禁用语法错误的错误报告,仅针对任何其他类型的错误。但是有一个问题。

除了语法错误之外,使用ini_set就像错误一样,因为ini_set(可能)在包含错误的代码之前运行。在同一文件中出现语法错误,不是这样。 PHP必须先解析整个文件,然后才能开始执行第一行代码。如果它在解析时遇到错误,即使该错误在文件中继续存在,它仍在解析但尚未执行:它没有机会运行ini_set

最直接的解决方案是编辑php.ini,以便在解析开始之前设置适当的设置。

如果您不能这样做,则可能必须将具有潜在语法错误的代码放在另一个文件中,然后原始文件可以ini_setrequire第二个。由于require只会在执行require时解析所需的文件,因此可以确保ini_set将在所需脚本中的任何解析错误发生之前运行。