我经常会尝试运行PHP脚本,然后得到一个空白屏幕。没有错误信息;只有一个空屏幕。原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或者完全是其他原因。
很难找出哪里出了问题。我最终注释掉了代码,到处输入“echo”语句,等等,试图缩小问题的范围。但肯定有更好的办法,对吧?
是否有一种方法可以让PHP像Java那样产生有用的错误消息?
我经常会尝试运行PHP脚本,然后得到一个空白屏幕。没有错误信息;只有一个空屏幕。原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或者完全是其他原因。
很难找出哪里出了问题。我最终注释掉了代码,到处输入“echo”语句,等等,试图缩小问题的范围。但肯定有更好的办法,对吧?
是否有一种方法可以让PHP像Java那样产生有用的错误消息?
当前回答
您可能还想尝试使用PHPStorm作为代码编辑器。当您在编辑器中输入时,它会发现许多PHP和其他语法错误。
其他回答
有一个非常有用的扩展名为“xdebug”,它也会使您的报告更好。
您可能还想尝试使用PHPStorm作为代码编辑器。当您在编辑器中输入时,它会发现许多PHP和其他语法错误。
下面将启用所有错误:
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
请参见以下链接
http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors http://php.net/manual/en/errorfunc.configuration.php#ini.display-startup-errors http://php.net/manual/en/function.error-reporting.php
您可以启用完整的错误报告(包括通知和严格消息)。有些人觉得这太啰嗦了,但值得一试。在php.ini中设置error_reporting为E_ALL | E_STRICT。
error_reporting = E_ALL | E_STRICT
E_STRICT将通知您已弃用的函数,并为您提供关于执行某些任务的最佳方法的建议。
如果你不想要通知,但你发现其他消息类型有帮助,尝试排除通知:
error_reporting = (E_ALL | E_STRICT) & ~E_NOTICE
还要确保在php.ini中启用了display_errors。如果您的PHP版本高于5.2.4,请将其设置为On:
display_errors = "On"
如果您的版本是5.2.4或更新版本,请使用:
display_errors = "stderr"
如果你超级酷,你可以试试:
$test_server = $_SERVER['SERVER_NAME'] == "127.0.0.1" || $_SERVER['SERVER_NAME'] == "localhost" || substr($_SERVER['SERVER_NAME'],0,3) == "192";
ini_set('display_errors',$test_server);
error_reporting(E_ALL|E_STRICT);
这将只在本地运行时显示错误。它还提供了test_server变量,以便在其他适当的地方使用。
在脚本运行之前发生的任何错误都不会被捕获,但对于我所犯的99%的错误,这不是问题。