2012-05-08 12 views
2

私はPHPで致命的と見なされるエラーが何であるか考えています(他の言語にも興味がありますが)。エラータイプのどこかに簡潔な説明やリストがありますか? 「致命的でない」という表現を使用しても意味がありますか?phpでは致命的ではなく致命的ではないエラー?

私がPHPエラーを起こすときに、私の$_SESSION(実際にはcodeigniterセッションを使用しています)が破壊されているのに対し、他のケースではそれが破壊されてしまい、どうしてこのようなことが起こっているのかわかりません。

致命的なエラーが重大なエラーであり、それはパーサが、おそらくこのエラーのため、あなたのコードの残りの部分を解析し続けることができないことを意味します

答えて

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