2012-05-08 51 views
2

我想知道哪些錯誤被認爲是致命的而不是在PHP中(儘管對其他語言也有興趣)。是否有錯誤類型的每個地方的簡明解釋和/或列表?使用「非致命」的表達甚至有意義嗎?在php中致命與不致命的錯誤?

我不知道的原因是因爲有時我讓PHP錯誤我$_SESSION(實際使用笨會話)被破壞,而在其他情況下,它是不是和我不能完全把我的手指上爲什麼發生這種情況。

回答

2

嗯,命名是不言自明:

致命錯誤是嚴重的錯誤,它意味着分析器不可能繼續分析,因爲這個錯誤的代碼的其餘部分。例如:

  • 你的網絡服務器已經耗盡內存來解析腳本(例如解析器打在php.ini中memory_limit集)。
  • 該腳本包含一個無限循環(例如while(1) { echo "Hi friend!"; }並且運行時間比您的php.ini中的集合max_execution_time長)。

非致命錯誤通常被稱爲Warnings,他們仍然相當嚴重,應該是固定的,但不會導致解析器停止解析你的代碼,它仍然可以繼續,不管發生的錯誤的。例如:

  • 您正在調用未設置的變量。
  • 您正在請求一個不存在的數組中的密鑰。
  • 您正在調用一個不存在的功能。

希望這可以爲你解決一些問題。

+0

- @ Oldskool,謝謝你清理了很多,我唯一不理解的部分是你的第一個要點(即「..內存不足......」)。 'memory_limit'是一個常見的用例嗎?我明白一個糟糕的'for'或'while'循環,但不清楚什麼類型的東西會炸燬內存。 –

+1

@timpeterson根據你的腳本的作用,它*可能會運行到設置的'memory_limit'中(通常情況下,較重的頁面必須解析大量數據或者沒有最佳編碼)。默認值通常應該很好。 – Oldskool