我试图隐藏错误,但似乎我做错了。
在我的托管配置display_errors
设置为off
,我没有.htaccess
文件。我试着写下来的脚本
<?php
echo ord(ini_get("display_errors")) . " ";
die("error");
?>
我得到了以下输出:
0 error
因此,display_errors
设置为关闭,但die()
功能仍会在屏幕上显示错误。怎么避免这个?
答案 0 :(得分:6)
通过执行die("error")
,您正在命令代码输出字符串“error”并停止代码。
您看到“错误”消息并不意味着存在错误,它只是另一个字符串。
die()
是一个函数(通常用于处理错误),但在关闭显示错误时不会取消激活。它仍然可以工作,无论它的意图是什么。
答案 1 :(得分:1)
如何避免这种情况?
请勿使用die()来处理错误。
改为使用trigger_error()
,这将遵循您期望的行为
答案 2 :(得分:0)
可以选择向stderr
而不是stdout
显示错误,因此您不会在您的网页上看到它们,而只会在日志中看到它们。 (Manual)
答案 3 :(得分:0)
我发现了error_log()
功能。现在我可以使用
function quit($error)
{
echo "Request failed";
error_log($error);
die();
}