2012-11-29 7 views

答えて

11

いいえ、trigger_error()は、第2引数をE_USER_ERRORとして渡さない限り、実行を停止しません。デフォルトでは警告が表示されます。通話後、ある時点でエラーが発生している必要があります。

トリガー警告:

trigger_error("CTest message"); // defaults to E_USER_NOTICE 

トリガ致命的なエラー:

trigger_error("Test message", E_USER_ERROR); 
+1

はい2番目の引数はE_USER_ERRORです。実際にはセッションの破棄をテストしています。ガベージコレクタは正常にデータベースセッションデータを削除します。セッションを作成するページをリロードしようとすると、trigger_errorが発生します。 – pheromix

+2

'E_USER_ERROR'は実行を停止し、引数を削除するか、E_USER_NOTICEに変更します – MrCode

+2

カスタムエラーハンドラを設定した場合、E_USER_ERRORに' false'を返さないことで実行を続行させることができます。 – Pacerier

1

それはあなたがtrigger_error()関数に渡す2番目のパラメータ$error_typeは、何であるかに依存します。エラーを表示して実行を停止するものもあれば、エラーを表示して続けるものもあります(ディスプレイはerror_reportingdisplay_errorsの設定にも基づいています)。例えば

、あなたが呼び出す場合:

trigger_error('This is an error', E_USER_ERROR); 

をあなたのスクリプトが実行を停止します。

しかし、あなたが呼び出す場合:

trigger_error('This is a warning', E_USER_WARNING); 

スクリプトは停止しません。

デフォルトでは、trigger_error()は、実行を停止しないE_USER_NOTICEを使用します。

エラータイプの完全なリストはhereです。

+0

E_USERファミリの定数でのみ動作します – astroanu

+0

trigger_errorはE_ERRORまたはE_WARNINGでは使用できません。 trigger_errorのphpドキュメントでは、E_USERファミリの定数だけが動作すると述べています。 – astroanu

関連する問題