2016-08-07 4 views
0

さまざまなエラーと警告を説明するさまざまな種類のものがあります(PHP error constants)。PHPエラー定数をその名前(または人間が判読可能なもの)にマップする方法はありますか?

これらのエラー定数を対応する値に手動でマップすることはできますが、定数の名前にマッピングする方が良いでしょうか、人間が読める名前(E_NOTICE - > "PHP Notice ")?

+1

どのような目的ですか?あなたはこれをどのように使う予定ですか? –

+0

私は、ほとんどのMVCフレームワークが行うことをしようとしています...コンテンツの途中でエラーを出力するデフォルトのPHPの代わりにカスタムエラーを表示するカスタムハンドラを設定します。 – user2064000

答えて

0

私はあなたが欲しいものをよく理解してくれることを願っています。 私はあなたの助けになることを願っています。

function ErrorType($type) 
    { 
     switch($type) 
     { 
      case E_ERROR: // 1 // 
       return 'ERROR'; 
      case E_WARNING: // 2 // 
       return 'WARNING'; 
      case E_PARSE: // 4 // 
       return 'PARSE'; 
      case E_NOTICE: // 8 // 
       return 'NOTICE'; 
      case E_CORE_ERROR: // 16 // 
       return 'CORE_ERROR'; 
      case E_CORE_WARNING: // 32 // 
       return 'CORE_WARNING'; 
      case E_COMPILE_ERROR: // 64 // 
       return 'COMPILE_ERROR'; 
      case E_COMPILE_WARNING: // 128 // 
       return 'COMPILE_WARNING'; 
      case E_USER_ERROR: // 256 // 
       return 'USER_ERROR'; 
      case E_USER_WARNING: // 512 // 
       return 'USER_WARNING'; 
      case E_USER_NOTICE: // 1024 // 
       return 'USER_NOTICE'; 
      case E_STRICT: // 2048 // 
       return 'STRICT'; 
      case E_RECOVERABLE_ERROR: // 4096 // 
       return 'RECOVERABLE_ERROR'; 
      case E_DEPRECATED: // 8192 // 
       return 'DEPRECATED'; 
      case E_USER_DEPRECATED: // 16384 // 
       return 'USER_DEPRECATED'; 
     } 
     return ""; 
    } 
    function xhandler($errno,$errstr,$errfile,$errline,$context) 
    { 
     $errno = ErrorType($errno); 
     error_log("PHP ".$errno.": ".$errstr." in ".$errfile." on line ".$errline); 
    } 
    set_error_handler('xhandler',E_ALL); 
+0

エラー定数は、それらの多くを組み合わせたビットマスクではないと常に保証されていますか?エラー定数ページには、ビットマスクであることが記載されています(ただし、これまで使用されていたかどうかは説明していません)。 (これは実際に私がPHPの組み込み関数などを探していた正確な理由です...) – user2064000

関連する問題