[PHP-users 11536] クラス内でのエラー処理

Eiji Miwa php-users@php.gr.jp
Mon, 18 Nov 2002 02:42:56 +0900


 ミワです。こんばんは。

 クラス内でエラー処理を行おうと思い、以下のように書いてみました。

  <?php
    class my_error_handler {
      /* Error Handler */
      function error_handler( $errno, $errmsg, $filename, $linenum, $vars ) {
        エラー処理
      }
      /* Constructor */
      function my_error_handler() {
        error_reporting( E_ALL );
        $old_eh = set_error_handler( array( $this, "error_handler" ) );
      }
    }
  ?>

  $eh = new my_error_handler();
  trigger_error( "Error!", E_USER_ERROR );

 ですが、実行してみると、

 Notice: Array to string conversion in /xxx/xxx/xxx.inc on line xx

 ...と set_error_handler の行でエラーが出てしまいます。

 set_error_handler へのユーザ定義関数の指定方法が問題になるのですが、
 配列ではなく、文字列でクラスの関数を指定する方法はあるのでしょうか?
 もしくは、クラスの関数を指定することは出来ないのでしょうか?
 
 お分かりなる方、ご教授いただけると助かります。
 宜しくお願い致します。

 #PHP のバージョンは 4.2.1 です。