php中的致命与非致命错误?

时间:2012-05-08 08:25:03

标签: php codeigniter session fatal-error

我想知道什么错误被认为是致命的而不是PHP(尽管对其他语言感兴趣)。每种错误类型都有简明的解释和/或列表吗?使用“非致命”这个词甚至有意义吗?

我想知道的原因是因为有时当我犯PHP错误时我的$_SESSION(实际上使用codeigniter会话)被破坏而在其他情况下它没有被破坏而我无法完全理解为什么这样做正在发生。

1 个答案:

答案 0 :(得分:2)

嗯,这个命名非常明显:

致命错误是严重错误,这意味着解析器无法继续解析其余代码,因为此错误。例如:

  • 您的网络服务器内存不足以解析脚本(例如,解析器点击了php.ini中的memory_limit集。)
  • 该脚本包含一个无限循环(例如while(1) { echo "Hi friend!"; }并且运行时间超过php.ini中的max_execution_time集。)

非致命错误通常称为Warnings,它们仍然非常严重且应该修复,但不会导致解析器停止解析代码,它仍然可以继续,无论发生什么错误。例如:

  • 您正在调用未设置的变量。
  • 您正在请求不存在的数组中的密钥。
  • 您正在调用一个不存在的函数。

希望这能为你解决一些问题。