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



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

例如,这是我带有 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 文件可以回显这些消息,但为了做到这一点,它需要知道 $debug 11 是什么,它可以在不包含该 PHP 页面的情况下做到这一点吗? 这就是公共字符串的用途吗? 还是我应该在调试中定义所有这些.php

所有这一切的重点是jQuery将调用这个文件.php并得到像11或10这样的消息,在这种情况下是成功或失败,那么我将能够知道为什么它在调试.php中失败。 数字更容易,因为我可能会经常玩短信,并且在if条件下用数字比文本更容易确认。

您希望存储错误消息并通过另一个脚本读取此消息。
这意味着您需要一个存储空间。
作为存储,您可以使用文件、内存缓存、APC 或队列。
创建记录器,它将消息写入存储,然后在debug.php中读取存储中的消息列表。
我建议使用Memcache,set_error_handler和trigger_error。

我不确定您所说的"公共字符串"是什么意思,但是如果您正在考虑访问 2 页之间的变量,则至少需要将它们持久化到会话变量中。

此外,最好使用 PHP 断言来检查代码中的错误条件(我认为这就是您在这里试图实现的目标):

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

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

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

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

如上所述,我不是 100% 确定您要做什么,但是与其为自定义错误消息使用变量,不如使用常量。它们的好处是不能重写值,这与变量不同,您可以在脚本中更改值。

您的代码如下所示:

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 文件中,并在包含该文件的任何页面上使用它们。

希望这有帮助。

最新更新