繁体   English   中英

PHP - 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM