我经常会try 运行一个PHP脚本,然后返回一个空白屏幕.没有错误信息;只是一个空屏幕.原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或者完全是其他原因.

很难找出哪里出了问题.我最后注释掉了代码,到处输入"echo"语句,等等,试图缩小问题的范围.但肯定有更好的办法,对吧?

有没有办法让PHP像Java一样生成有用的错误消息?

推荐答案

对于语法错误,需要在php.ini中启用错误显示.默认情况下,这些选项是关闭的,因为您不希望"客户"看到错误消息.Check this page获取有关两个指令的信息:error_reportingdisplay_errors.display_errors可能是您要换的那趟车.如果您不能修改php.ini,您还可以将以下行添加到.htaccess文件中:

php_flag  display_errors        on
php_value error_reporting       2039

您可能想考虑使用EyALL(如GunbO所提到的)为PHP版本的error_reporting来获取所有的错误.more info

其他3项:(1)您可以判断错误日志(log)文件,因为它将包含所有错误(除非已禁用日志(log)记录).(2) 添加以下两行将帮助您调试非语法错误的错误:

error_reporting(-1);
ini_set('display_errors', 'On');

(3) 另一个选项是使用一个编辑器,在键入时判断错误,例如PhpEd.PhpEd还附带了一个调试器,可以提供更详细的信息.(PhpEd调试器与xdebug非常相似,并直接集成到编辑器中,因此您可以使用一个程序来完成所有操作.)

卡特曼的link分也很不错:http://www.ibm.com/developerworks/library/os-debug/

Php相关问答推荐

将WooCommerce订购项目管理产品链接更改为产品永久链接(前端)

419注册期间Laravel 11中的错误

未在moodle上运行的计划任务

如何优化-PHP 7.3.14+Laravel 6

PHP:PHP手册-Manual

如何在php中生成包含第100秒的时间序列?

在PHP中读取JSON

如何确保所有语言文件都使用Laravel中的新密钥进行更新?

基于自定义域的每个购物车项目的WooCommerce定制数量输入步骤

PHP:使用FORT从数据库获取USERS表到AUTH表

如何在laravel中添加延迟?

在WooCommerce上设置简单和可变产品的最小订单量

Laravel 10中的Validator类

用ajax获取文件 - CORS问题&;设置缓存?

打折时更改 Woocommerce 产品名称

过滤会员计划标题和标签

VS Code 对 PHP 上从父类继承的方法报告误报

Golang - Html 模板:如何创建导航项 - 子菜单?我找不到怎么做

避免在 WooCommerce 中多次触发挂钩函数

如果有很多重定向,PHP curl 的行为不像命令行 curl