我的虚拟主机提供商不提供启用错误报告的选项。所以尝试了 error_reporting(E_ALL); 但这也行不通。我尝试了以下脚本:
<?php
error_reporting(E_ALL);
echo $test;
?>
如果我正确阅读了手册,那么这应该会生成错误通知。但这也行不通。我做错了什么还是获得新的虚拟主机提供商的唯一解决方案?
我的虚拟主机提供商不提供启用错误报告的选项。所以尝试了 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);
附录:该指令曾经被记录为布尔值,但现在不再如此。此外,由于display_errors指令和ini_set()的第二个参数都是string
类型,因此在使用严格类型时,您将无法传递布尔值:
<?php
declare(strict_types=1);
ini_set('display_errors', true);
致命错误:未捕获的 TypeError:ini_set() 期望参数 2 为字符串,bool 给定
因此,您需要传递一个 eval 为 true 的字符串,例如'true'
or '1'
。
您还需要:
ini_set('display_errors', true);
如果它是共享主机,那么出于安全原因,他们可能会禁用错误报告,但他们仍然应该能够为您的特定域提供错误日志,如果他们不想内联显示它,请尝试与他们交谈 - 获取访问日志文件或者可能是一些可以安全读取它的管理面板。