0

重複の可能性:
PHP で呼び出し関数/メソッドの名前を取得する方法は?

そのため、PHP でカスタム エラー ハンドラ クラスを作成しようとしています。それは非常に簡単です: コード番号を与えると、モバイル デバイスに送信するために使用できる書式設定されたエラー メッセージが返されます。

したがって、現在は次のようになります。

class Errorhandler {
   private $errors = array(
       //here be error codes and messages
       100 => 'Missing input or parameter!'
  );

   public function __construct($code = 100){
        //return formatted output
   }
}

したがって、上記のクラスを次のように使用します。

public function someFunction(){
    //some conditions met, then throw an error
    $handler = new ErrorHandler();
    $this->response = $handler;        
}

そのため、Errorhandler クラスに親関数の名前 (someFunction) が必要なので、書式設定されたエラー メッセージを返すことができます。余談ですが、これにはパラメーターを使用したくありません。書き込みが多すぎます。

4

3 に答える 3

2

__FUNCTION__

魔法です。詳細はこちら: http://www.php.net/manual/en/language.constants.predefined.php

実際に ErrorHandler クラスで取得するには、コンストラクターに渡す必要があります。PHP は魔法のようなものではありません。

于 2012-10-24T20:05:10.677 に答える
0

debug_backtrace()関数を呼び出した関数を取得するために使用できます。

debug_backtrace()現在のコール スタックを返します。

于 2012-10-24T20:07:54.393 に答える
0

debug_backtrace()関数の出力を解析できます。すべての呼び出しの連想配列を一番上に返します (http://php.net/manual/en/function.debug-backtrace.php)

また、致命的なエラーは通常のスクリプトの実行を中断することに注意してください。それをキャッチするには、register_shutdown_function()(http://php.net/manual/ru/function.register-shutdown-function.php)に登録されたコールバックからエラー ハンドラを呼び出す必要があります。

于 2012-10-24T20:25:41.663 に答える