php - 为什么 PHP 错误处理 PHP 并不总是有效?

标签 php error-handling

我环顾四周,通常 PHP 错误报告效果很好,当然是在添加下面的 3 行时。
但并非总是如此,例如请注意下面的行:echo;。我认为这应该输出指向该行的错误?但相反,在两台不同的服务器上进行测试时,其中一台会导致内部服务器错误,而另一台则显示“此页面无法正常工作”。

error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

echo ;

这种情况发生在更多情况下,并使调试有点痛苦。
这是预期的吗?错误报告确实并不总是有效吗?
谢谢,
彼得

最佳答案

这是 PHP 解析错误。您将进入控制台或在 linting 文件时进入 (php -l file.php)。它显示:PHP Parse error: syntax error, unexpected ';' in /var/www/html/d.php on line 5 .由于这是解析错误,无论您在上面的文件中没有执行什么,您在这里有这些错误设置都没有关系 - 文件本身不是有效的 php 并且无法解析。当服务器运行它时,它会从 php 得到错误并做出相应的 react 。错误消息在服务器日志中可见。对于我的 apache,它默认记录到/var/log/apache2/error.log。
您可以在 php.ini 文件中进行设置。
更改此 display_errors = Offdisplay_errors = On ,重新加载 apache,您还会看到以下错误:Parse error: syntax error, unexpected ';' in /var/www/html/d.php on line 2即使文件中没有任何其他代码。这是我测试它的文件:

<?php
echo ;

关于php - 为什么 PHP 错误处理 PHP 并不总是有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62753458/

相关文章:

php - 如何从不同的表中获取 WHERE 子句的特定 ID?使用连接

c - 返回 "ENOTDIR"、 "EBUSY"等字符串的函数?

Java:捕获系统错误

node.js - 在 NodeJS 中发送不同的 POST 响应

c# - wpf c# DispatcherUnhandledException 未触发

php - mysql (php) 上的时间戳问题

php - 这个无法访问的区域是否可以仅使用 CSS 进行链接?

php - PHP 静态变量持续多久?

php - 检查表1中的用户名并返回表2中的数据

javascript - 为什么我的 javascript throw 在 Firebug 中不起作用?