2012-05-08 50 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