<?php
// attiveremo la nostra gestione degli errori
error_reporting(0);
// funzione personalizzata di gestione dell'errore
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
// orario per la registrazione
// definisce una matrice associativa con i messaggi di errore
// in realtà i soli campi che saranno considerati sono
// E_WARNING, E_NOTICE, E_USER_ERROR,
// E_USER_WARNING and E_USER_NOTICE
$errortype = array (
E_ERROR => "Error",
E_WARNING => "Warning",
E_PARSE => "Parsing Error",
E_NOTICE => "Notice",
E_CORE_ERROR => "Core Error",
E_CORE_WARNING => "Core Warning",
E_COMPILE_ERROR => "Compile Error",
E_COMPILE_WARNING => "Compile Warning",
E_USER_ERROR => "User Error",
E_USER_WARNING => "User Warning",
E_USER_NOTICE => "User Notice",
E_STRICT => "Runtime Notice"
);
// indica gli errori per i quali fare salvare la trace delle variabili
$user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);
$err .= $dt ;
$err .= $errno ;
$err .= $errortype[$errno];
$err .= $errmsg ;
$err .= $filename ;
$err .= $linenum ;
if (in_array($errno, $user_errors)) {
$err .= wddx_serialize_value($vars, "Variables");
}
$err .= "</errorentry>\n\n";
// for testing
// echo $err;
// salva nell'errorlog e invia un e-mail se vi sono errori critici
error_log($err, 3, "/usr/local/php4/error.log");
function distance($vect1, $vect2)
{
if (!is_array($vect1) || !is_array($vect2)) {
trigger_error("Incorrect parameters, arrays expected", E_USER_ERROR);
return NULL;
}
if (count($vect1) != count($vect2)) {
trigger_error("Vectors need to be of the same size", E_USER_ERROR);
return NULL;
}
for ($i=0; $i<count($vect1); $i++) {
$c1 = $vect1[$i]; $c2 = $vect2[$i];
$d = 0.0;
if (!is_numeric($c1)) {
trigger_error("Coordinate $i in vector 1 is not a number, using zero",
E_USER_WARNING);
$c1 = 0.0;
}
if (!is_numeric($c2)) {
trigger_error("Coordinate $i in vector 2 is not a number, using zero",
E_USER_WARNING);
$c2 = 0.0;
}
$d += $c2*$c2 - $c1*$c1;
return $d;
echo sqrt($d);
}
return $d;
}
$old_error_handler = set_error_handler("userErrorHandler");
// variabile non definita, genera un warning
$t = I_AM_NOT_DEFINED;
// definisce dei vettori
$a = array(2, 3, "foo");
$b = array(5.5, 4.3);
$c = array(1, 3);
// genera un errore utente
distance($c, $b) . "\n";
// un'altro errore utente
distance($b, "i am not an array") . "\n";
// genera un warning
distance($a, $b) . "\n";
?>
- Output for 5.4.0 - 5.4.21
- Parse error: syntax error, unexpected end of file in /in/8NkEC on line 104
Process exited with code 255. - Output for 5.3.0 - 5.3.27
- Parse error: syntax error, unexpected $end in /in/8NkEC on line 104
Process exited with code 255.
preferences:
179.71 ms | 1395 KiB | 57 Q