![](/img/trans.png)
[英]PHP @ operator for include doesn't disable error_reporting
[英]PHP - error_reporting doesn't work
我的虚拟主机提供商不提供启用错误报告的选项。 所以尝试使用 error_reporting(E_ALL); 但这也行不通。 我尝试了以下脚本:
<?php
error_reporting(E_ALL);
echo $test;
?>
如果我正确阅读了手册,那么这应该会生成错误通知。 但这也行不通。 我做错了什么或者是获得新的虚拟主机提供商的唯一解决方案?
error_reporting
只是告诉 PHP 错误报告应该有多详细,但您还需要通过设置告诉它实际向浏览器显示错误
ini_set('display_errors', 1);
您可能想对触发的错误执行某些操作,例如记录它:
ini_set('error_log', '/path/to/php-error.log');
...和/或显示它:
ini_set('display_errors', true);
附录:该指令过去被记录为 boolean,但现在不再如此。 此外,由于display_errors指令和ini_set()的第二个参数都是string
类型,因此在使用严格类型时,您将无法传递 boolean:
<?php
declare(strict_types=1);
ini_set('display_errors', true);
致命错误:Uncaught TypeError: ini_set() expects parameter 2 to be string, bool given
因此,您需要传递一个评估为 true 的字符串,例如'true'
或'1'
。
您还需要:
ini_set('display_errors', true);
如果它是共享主机,那么出于安全原因,他们可能会禁用错误报告,但他们仍然应该能够为您的特定域提供错误日志,如果他们不想内联显示,请尝试与他们交谈 - 访问 go 日志文件或者可能是一些可以安全读取它的管理面板。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.