display_errors不起作用

时间:2010-07-22 12:58:51

标签: php

我试图隐藏错误,但似乎我做错了。 在我的托管配置display_errors设置为off,我没有.htaccess文件。我试着写下来的脚本

<?php
    echo ord(ini_get("display_errors")) . " ";
    die("error");
?>

我得到了以下输出:

0 error

因此,display_errors设置为关闭,但die()功能仍会在屏幕上显示错误。怎么避免这个?

4 个答案:

答案 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();
}