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

为什么PHP错误处理PHP不总是有效?,php,error-handling,Php,Error Handling,我环顾四周,通常PHP错误报告工作得很好,当然是在添加下面的3行时 但并非总是如此,例如,请注意下面的行:echo;。我认为这应该会输出一个指向该行的错误?但是,当在两个不同的服务器上进行测试时,一个服务器上会出现内部服务器错误,另一个服务器上会显示“此页面不工作” 这种情况在很多情况下都会发生,这使得调试有点痛苦 这是意料之中的吗?错误报告确实不总是有效吗 谢谢, Peter这是PHP解析错误。您将进入控制台或在linting文件(php-l file.php)时进入。它显示:PHP解析错误:

我环顾四周,通常PHP错误报告工作得很好,当然是在添加下面的3行时

但并非总是如此,例如,请注意下面的行:echo;。我认为这应该会输出一个指向该行的错误?但是,当在两个不同的服务器上进行测试时,一个服务器上会出现内部服务器错误,另一个服务器上会显示“此页面不工作”

这种情况在很多情况下都会发生,这使得调试有点痛苦

这是意料之中的吗?错误报告确实不总是有效吗

谢谢,
Peter

这是PHP解析错误。您将进入控制台或在linting文件(php-l file.php)时进入。它显示:
PHP解析错误:语法错误,意外“;”在第5行的/var/www/html/d.php中
。由于这是解析错误,所以上面文件中的任何内容都没有执行,因此这里的错误设置无关紧要-文件本身不是有效的php,无法解析。当服务器运行时,它从php中得到错误,并做出相应的反应。错误消息在服务器日志中可见。对于我的apache,默认情况下它会记录到/var/log/apache2/error.log

您可以在php.ini文件中进行设置。 将此
display\u errors=Off
更改为
display\u errors=On
,重新加载apache,您还会看到这些错误:
分析错误:语法错误,意外“;”在第2行的/var/www/html/d.php中
即使文件中没有任何其他代码。这是我测试它时使用的文件:

<?php
echo ;

您需要区分错误、警告、通知和异常。您的意思是我上面描述的是预期结果吗?因为,尽管我希望得到正确的错误/警告消息,但将echo部分放入try-catch块时也会发生同样的情况。即使这样,也不会抛出正确的错误消息,只有“Thispagenotworking”消息,对我来说,它只是显示空页面。这是PHP解析错误。您将进入控制台或在linting文件(php-l file.php)时进入。它显示:PHP解析错误:语法错误,意外的“;”在第5行的/var/www/html/d.php中。由于这是解析错误,所以上面文件中的任何内容都没有执行,因此这里的错误设置无关紧要-文件本身不是有效的php,无法解析。当服务器运行时,它从php中得到错误,并做出相应的反应。错误消息在服务器日志中可见。对于我的apache,默认情况下它会被记录到/var/log/apache2/error.log。非常感谢!是的,错误日志确实显示PHP解析错误:。。。这实际上是WHM>软件>PHPINI编辑器>显示错误中的一个快速修复。这确实是残疾的
<?php
echo ;