2011-05-23 55 views
1

我想要做的是当if条件没有按照它应该去的时候,而不是在别的{}中回显我的自定义错误消息,将错误消息存储在别的地方并从中检索它另一页。如何处理PHP上的调试错误? (公共字符串?)

例如,这是我的页面,如果条件:

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。数字比较容易,因为我可以使用短信进行很多操作,并且在数字条件下比使用文本更容易确认数字。

回答

2

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

1

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

你也可以使用PHP assertions来检查你的代码中的错误情况会更好(我认为这是你想要在这里实现什么):

断言应该作为一个调试功能只要。您可以使用它们进行健全性检查,测试条件应始终为TRUE,并且如果不是,则会指示一些编程错误,或者检查是否存在某些功能,如扩展功能或某些系统限制和功能。

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文件中的这些常量存储和使用他们,你有该文件的任何页面上。

希望这会有所帮助。