我正在处理自己的自定义错误处理函数。目前我正在尝试禁用错误报告,因此它不会向公共用户显示错误。但它没有用。
<?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
我做错了什么?
答案 0 :(得分:2)
您可以禁用语法错误的错误报告,仅针对任何其他类型的错误。但是有一个问题。
除了语法错误之外,使用ini_set
就像错误一样,因为ini_set
(可能)在包含错误的代码之前运行。在同一文件中出现语法错误,不是这样。 PHP必须先解析整个文件,然后才能开始执行第一行代码。如果它在解析时遇到错误,即使该错误在文件中继续存在,它仍在解析但尚未执行:它没有机会运行ini_set
。
最直接的解决方案是编辑php.ini
,以便在解析开始之前设置适当的设置。
如果您不能这样做,则可能必须将具有潜在语法错误的代码放在另一个文件中,然后原始文件可以ini_set
和require
第二个。由于require
只会在执行require
时解析所需的文件,因此可以确保ini_set
将在所需脚本中的任何解析错误发生之前运行。