我觉得用PHP编程非常令人沮丧.我经常尝试运行脚本,然后再回一个空白屏幕.没有错误消息,只是空屏幕.原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或其他完全错误.
弄清楚出了什么问题是非常困难的.我最终评论出代码,在任何地方输入"echo"语句等等,试图缩小问题范围.但肯定有一个更好的方法,对吗?
那么,有没有办法让PHP产生像Java那样有用的错误信息呢?任何人都可以推荐良好的PHP调试技巧,工具和技术?
所以,我当前的网页上确实没有任何错误,但我希望能够在弹出时看到错误,而不是HTTP 500错误页面.我google了一下,并认为添加这两行将解决所有问题.
ini_set('display_errors', 'On');
error_reporting(E_ALL);
Run Code Online (Sandbox Code Playgroud)
注意:我无法访问php.ini文件,因为我正在使用我的学校帐户的服务器.
所以我在页面顶部介绍了一个bug(在$ buggy之后没有分号):
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$buggy
$x = 4 + 2;
...
Run Code Online (Sandbox Code Playgroud)
但是,我只是收到服务器错误:
"该网站在检索http://mywebpage.com/时遇到错误.可能是因为维护失败或配置不正确."
有任何想法吗?
编辑:
我重新配置了我的代码:
<?php
include_once 'database/errorSettings.php';
?>
<?php
$buggy // whoops
$x = 4 + 2;
...
Run Code Online (Sandbox Code Playgroud)
errorSettings.php如下:
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>
Run Code Online (Sandbox Code Playgroud)
但它仍然无效...错误的重新配置方式?
我家里有一台PHP服务器用于开发.它正在运行:
Ubuntu 9.10
Apache 2.2.12
PHP 5.3.2-0.dotdeb.1
MySql 5.0.7-dev
Run Code Online (Sandbox Code Playgroud)
目前php.ini中显示错误的设置是:
display_errors = on
error_reporting = E_ALL
Run Code Online (Sandbox Code Playgroud)
但是我的php脚本中没有看到任何错误.同样非常奇怪的是phpinfo()告诉我这个:
display_errors Off
Run Code Online (Sandbox Code Playgroud)
我检查了php.ini文件,并多次重启apache服务器,但没有运气.有人知道这是怎么回事吗?
编辑:
当我localy设置这个:
ini_set('display_errors', 'on');
Run Code Online (Sandbox Code Playgroud)
我确实收到错误.