2

次のようなコードが機能していません。

class Abc extends CI_Controller {

    static function exception_handler(Exception $ex)
    {       
        var_dump($ex);
        echo $ex->getMessage();
        exit;
    }

    function __construct()
    {
        parent::__construct();
        set_exception_handler('exception_handler');     
    }       

    function Index()
    {

        throw new Exception('hehe');
    }
}   

私は得る

PHPエラーが発生しました

重大度:警告

メッセージ:set_exception_handler()は、引数(exception_handler)が有効なコールバックであることを期待しています

codeigniterでset_exception_handlerを使用する方法

4

4 に答える 4

3

exception_handlerはクラス内の関数であるため、次のようにする必要があります。

set_exception_handler(array('self','exception_handler')); 

または

set_exception_handler(array('Abc','exception_handler'));

于 2012-06-24T13:46:20.737 に答える
3

Set_exception_handler は、名前空間を含む完全な名前のクラスを常に想定し、他の名前空間を使用するための「使用命令」を省略します。

あなたの場合、フルネームは次のとおりです。「CI_Controller:exception_handler」

したがって、正しい呼び出しは次のとおりです。 set_exception_handler('CI_Controller:exception_handler');

名前空間 App; などの名前空間が 1 つある場合。

正しい呼び出しは次のとおりです。 set_exception_handler('App\CI_Controller:exception_handler');

于 2012-10-29T11:36:47.300 に答える