Andreas: Probleme mit Error-Handling

Beitrag lesen

Hallo!

ich habe mal von
http://www.php.net/manual/de/function.set-error-handler.php  folgendes entwas abgewandeltes Script versucht:

<?php

// redefine the user error constants - PHP4 only
define(FATAL,E_USER_ERROR);
define(ERROR,E_USER_WARNING);
define(WARNING,E_USER_NOTICE);

// set the error reporting level for this script
error_reporting(FATAL + ERROR + WARNING);

// error handler function
function myErrorHandler ($errno, $errstr) {
    switch ($errno) {
    case FATAL:
        echo "<b>FATAL</b> [$errno] $errstr<br>\n";
        echo "  Fatal error in line ".__LINE__." of file ".__FILE__;
        echo ", PHP ".PHP_VERSION." (".PHP_OS.")<br>\n";
        echo "Aborting...<br>\n";
        exit -1;
        break;
    case ERROR:
        echo "<b>ERROR</b> [$errno] $errstr<br>\n";
        break;
    case WARNING:
        echo "<b>WARNING</b> [$errno] $errstr<br>\n";
        break;
    default:
        echo "Unkown error type: [$errno] $errstr<br>\n";
     echo "error in line ".__LINE__." of file ".__FILE__;
        break;
    }
}

// set to the user defined error handler
$old_error_handler = set_error_handler("myErrorHandler");

$a = 1;
$b = 0;

$x = $a / $b;

echo $x;

?>

Als Meldung bekomme ich dann

Unkown error type: [2] Division by zero
error in line 30 of file /webseite/errors.php

Die Fehler-Beschreibung ist richtig, der Dateipfad auch, aber __LINE__ ergibt genau die Zeile in der eben __LINE__ steht und nicht die des Fehlers. Wie kann ich an diese Zeile kommen? Oder habe ich was wichtiges in dem Beispielscript auf php.net übersehen?

Viele Grüße
Andreas

PS: Was ist der Unterschied zwischen Handler und Trigger?