性格悪い人が優勝

エラーハンドラ内でDBに再接続せずに、
DB接続済みの自クラスでエラーハンドラ関数を定義して、
エラーがあった場合は、エラーログをDBに出力したいのですが
PHP4で可能でしょうか?
やりたいイメージは下記な感じです。
class Test
{
var $db;
function my_handler($errno, $errstr, $errfile, $errline) {
global $error_type;
echo "$dbを使用し、エラー内容をDBにログ出力";
}
function A($db){
$this->db = $db ;
set_error_handler($this->my_handler);
// DBエラー発生など
trigger_error(xxxx,xxxx);
}
}
$db = xx_connect(); // DB接続処理など
$t = new Test();
$t->A($db);

A 回答 (1件)

関数をセットする関数で、クラスメソッド等をセットしたいということでしょうか?


他の関数も同様ですが、
xxx('method');
xxx(array('class', 'classMethod'));
xxx(array($object, 'classMethod'));
で指定できます。

$obj = new Error();
$old_error_handler = set_error_handler(array($obj, 'myErrorHandler'));
trigger_error("エラーです。", E_USER_ERROR);

class Error
{
 function myErrorHandler($errno, $errstr, $errfile, $errline)
 {
  echo "$errno, $errstr, $errfile, $errline";
 }
}
    • good
    • 0
この回答へのお礼

結構難しい使い方なので、PHP5に変更する事を検討します。
ありがとうございました。

お礼日時:2007/07/30 19:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!