@ 2013-10-25T11:55:52Z <?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
$dt = date("Y-m-d H:i:s (T)");
// 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 = "<errorentry>\n";
$err .= "\t<datetime>" . $dt . "</datetime>\n";
$err .= "\t<errornum>" . $errno . "</errornum>\n";
$err .= "\t<errortype>" . $errortype[$errno] . "</errortype>\n";
$err .= "\t<errormsg>" . $errmsg . "</errormsg>\n";
$err .= "\t<scriptname>" . $filename . "</scriptname>\n";
$err .= "\t<scriptlinenum>" . $linenum . "</scriptlinenum>\n";
if (in_array($errno, $user_errors)) {
$err .= "\t<vartrace>" . wddx_serialize_value($vars, "Variables") . "</vartrace>\n";
}
$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");
// // if ($errno == E_USER_ERROR) {
// mail("phpdev@example.com", "Critical User Error", $err);
// }
// }
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 sqrt($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, -1.6);
$c = array(1, -3);
// genera un errore utente
$t1 = distance($c, $b) . "\n";
// un'altro errore utente
$t2 = distance($b, "i am not an array") . "\n";
// genera un warning
$t3 = distance($a, $b) . "\n";
print_r($t1);print_r($t1);
?>
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 5.4.21 0.012 0.087 12.43 5.4.20 0.021 0.088 12.41 5.4.19 0.023 0.082 12.41 5.4.18 0.022 0.069 12.41 5.4.17 0.024 0.106 12.42 5.4.16 0.023 0.093 12.42 5.4.15 0.017 0.055 12.41 5.4.14 0.012 0.054 12.10 5.4.13 0.023 0.075 12.08 5.4.12 0.016 0.049 12.05 5.4.11 0.014 0.057 12.04 5.4.10 0.016 0.061 12.04 5.4.9 0.014 0.051 12.04 5.4.8 0.022 0.083 12.04 5.4.7 0.015 0.053 12.04 5.4.6 0.021 0.072 12.04 5.4.5 0.029 0.065 12.04 5.4.4 0.028 0.083 12.03 5.4.3 0.010 0.049 12.02 5.4.2 0.024 0.081 12.02 5.4.1 0.018 0.078 12.02 5.4.0 0.011 0.047 11.51 5.3.27 0.027 0.079 12.73 5.3.26 0.014 0.050 12.72 5.3.25 0.029 0.098 12.72 5.3.24 0.025 0.093 12.73 5.3.23 0.021 0.062 12.71 5.3.22 0.030 0.113 12.69 5.3.21 0.026 0.093 12.68 5.3.20 0.027 0.067 12.68 5.3.19 0.026 0.084 12.69 5.3.18 0.019 0.062 12.68 5.3.17 0.030 0.082 12.68 5.3.16 0.025 0.080 12.68 5.3.15 0.027 0.076 12.68 5.3.14 0.014 0.059 12.67 5.3.13 0.024 0.076 12.66 5.3.12 0.029 0.083 12.66 5.3.11 0.023 0.073 12.66 5.3.10 0.022 0.075 12.15 5.3.9 0.024 0.068 12.13 5.3.8 0.025 0.068 12.12 5.3.7 0.031 0.101 12.12 5.3.6 0.021 0.072 12.10 5.3.5 0.024 0.081 12.05 5.3.4 0.019 0.049 12.05 5.3.3 0.034 0.077 12.01 5.3.2 0.037 0.088 11.79 5.3.1 0.030 0.115 11.76 5.3.0 0.024 0.071 11.74
preferences:dark mode live preview
140.64 ms | 1398 KiB | 7 Q