如何在PHP上处理调试错误? (公共字符串?)

时间:2011-05-23 12:27:04

标签: php debugging

我想要做的是当if条件没有按照它应该进行时,而不是在else {}中回显我的自定义错误消息,将错误消息存储在其他地方并从另一个页面检索它。 / p>

例如,这是我的带有if条件的页面:

if ($something < 4){

echo 'yes it is less than four';

else { echo 'no it isn\'t less than four';}

我想例如将这些错误消息存储在字符串中并给它们编号:

if ($something < 4){

$debug11 =  'yes it is less than four';
echo '11';


else { $debug10 = 'no it isn\'t less than four'; echo '10'; }

然后让我们假设有一个带有php类的debug.php文件可以回显这些消息但是为了这样做它需要知道$ debug11是什么,它可以做到这一点而不包括那个php页面吗?是公共字符串的用途?或者我应该在debug.php

中定义所有这些内容

所有这一切的要点是jquery将调用此file.php并获取11或10之类的消息,在这种情况下成功或失败然后我将能够知道它为什么失败了debug.php。数字更容易,因为我可以用很多文本信息来播放,如果条件的话,用数字比用文字更容易确认。

4 个答案:

答案 0 :(得分:2)

您希望存储错误消息并通过其他脚本阅读此消息 这意味着你需要一个存储空间 作为存储空间,您可以使用filesmemcacheAPCqueues。 创建记录器,将消息写入存储,然后在debug.php中,您将读取存储中的消息列表。
我建议使用Memcache,set_error_handlertrigger_error

答案 1 :(得分:1)

我不确定“公共字符串”是什么意思,但如果您要查看2页之间的变量,则至少需要将它们保存到session variable

另外,您可能最好使用PHP assertions检查代码中的错误情况(我认为这是您在此处尝试实现的目标):

  
    
      

断言应仅用作调试功能。您可以将它们用于进行健全性检查,以检测应始终为TRUE的条件,如果没有则指示某些编程错误,或检查是否存在某些功能,如扩展功能或某些系统限制和功能。

    
  

答案 2 :(得分:1)

  1. 尝试登录文件:http://nl3.php.net/manual/en/errorfunc.configuration.php#ini.error-log。您可以提供自定义日志文件,您可以在其中找到所有错误。

  2. 如果你输入错误处理程序,你应该能够创建调试消息并将它们存储在另一个文件中。

  3. 编写自己的日志记录机制并将日志消息放入文件中。

答案 3 :(得分:0)

如上所述,我并非100%确定您要执行的操作,但是不使用变量作为自定义错误消息,最好使用Constants。它们的好处是,与您可以更改脚本中的值的变量不同,不能重写值。

您的代码看起来像这样:

define("ERROR1", "It wont Work!");
define("ERROR2", "It still wont Work!");
define("ERROR3", "It must be broken!");

if ($something < 4){
   echo '11';
} else { 
   echo ERROR1; // Prints "It wont Work!"
}

您可以将这些常量存储在debug.php文件中,并在包含该文件的任何页面上使用它们。

希望这有帮助。