2011-05-23 52 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文件中的這些常量存儲和使用他們,你有該文件的任何頁面上。

希望這會有所幫助。