Seite 1 von 1

PHP probblem mit set_error_handler()

Verfasst: Mi Jul 28, 2010 1:48 pm
von Uzaku
Hi,
ich habe hier folgenden Code:

Code: Alles auswählen

<?php
if(!defined("ERROR_HANDLING_H")){
define("ERROR_HANDLING_H", "1");
//Einige Errorhandling Routinen

function error($errno, $errstr)
{
  //...
}

function notice($errno, $errstr)
{
  //...
}

function initErrorHandling()
{
    static $aufruf = 0;
    if($aufruf > 0) return;
    
    if(!set_error_handler("error", E_USER_ERROR)) echo"konnte error nicht zuweisen";
    if(!set_error_handler("notice", E_USER_NOTICE)) echo "konnte notice nicht zuweisen"; 
    $aufruf++; 
}

}

?>
so, die zuweisung von notice() funktioniert, aber die von error nicht, er gibt jedesmal das Echo aus, und nach endlosem experimentieren, u.a. mit den Namen der Funktionen, bin ich zu dem Schluss gekommen, dass man E_USER_ERROR keinen eigenen Handler zuwesen kann, stimmt das?
Falls nicht, was ich stark hoffe: warum funktioniert das nicht?

grüße Uzaku

PS: gibts hier eig. Syntaxhighlighting?

Re: PHP probblem mit set_error_handler()

Verfasst: Mi Jul 28, 2010 4:28 pm
von Xin
http://php.net/manual/en/function.set-error-handler.php

Wenn ich da nach unten scrolle sehe ich Funktionen die folgende Signatur haben:

Code: Alles auswählen

function myErrorHandler($errno, $errstr, $errfile, $errline)
Die Parameter sind zwar optional, aber... PHP?

Re: PHP probblem mit set_error_handler()

Verfasst: Mi Jul 28, 2010 5:36 pm
von Uzaku
Daran liegt es nicht, da der 2te Aufruf funktioniert.
Ich habe rausgefunden, dass wenn ich den ersten aufruf auskommentiere, der 2te auch nicht mehr funktioniert.
Das brachte mich auf die Idee einen dummie aufruf an den anfang zu setzen.

Code: Alles auswählen

function foo(){}

set_error_handler("foo", E_USER_ERROR);
Danach gibt das set_error_handler für "error" keinen fehler mehr aus, aber mein Callback wird trotzdem nicht aufgerufen....
Wirklich merkwürdig.

Re: PHP probblem mit set_error_handler()

Verfasst: Mi Jul 28, 2010 5:54 pm
von Dominik
Was willst du den erreichen ?

http://www.php.net/manual/de/class.errorexception.php
Kennst du ja?

Re: PHP probblem mit set_error_handler()

Verfasst: Mi Jul 28, 2010 6:12 pm
von Xin
Uzaku hat geschrieben:Daran liegt es nicht, da der 2te Aufruf funktioniert.
Ich habe rausgefunden, dass wenn ich den ersten aufruf auskommentiere, der 2te auch nicht mehr funktioniert.
Wersagt eigentlich, dass es mehr als einen ErrorHandler gibt?
Das lässt das PHP-Manual für mich nicht vermuten, denn differenzieren im Handler nochmal schön brav, welches Problem überhaupt vorliegt.

Re: PHP probblem mit set_error_handler()

Verfasst: Do Jul 29, 2010 10:28 am
von Uzaku
Das war jetzt eiin sehr guter Hinweis, der Promt zur lösung des Problems geführt hat :)
Ich bin iwie davon ausgegangen, dass es einen handler pro state gibt, aber du hast recht, wäre merkwürdig, wenn dass sie das extra nochmal dieferenzieren