<?php
define ("ERREUR_FATALE", E_USER_ERROR);
define ("ERREUR", E_USER_WARNING);
define ("AVERTISSEMENT", E_USER_NOTICE);
error_reporting (ERREUR_FATALE | ERREUR | AVERTISSEMENT);
function gestionnaire_erreur ($numero_erreur, $message_erreur,
$fichier_erreur, $ligne_erreur)
{
switch ($numero_erreur)
{
case ERREUR_FATALE:
echo "<h3 style='color:#FF0000'>Une erreur du type "
. "<i>E_USER_ERROR</i> s'est produite :</h3>"
. "<u>Numéro :</u> " . $numero_erreur
. "<br><u>Message :</u> " . $message_erreur
. "<br><u>Fichier :</u> " . $fichier_erreur
. "<br><u>Ligne :</u> " . $ligne_erreur
. "<br>Interruption du script en cours !";
exit -1;
break;
case ERREUR:
echo "<h3 style='color:#FF0000'>Une erreur du type "
. "<i>E_USER_WARNING</i> s'est produite :</h3>"
. "<u>Numéro :</u> " . $numero_erreur
. "<br><u>Message :</u> " . $message_erreur. "<br>";
break;
case AVERTISSEMENT:
echo "<h3 style='color:#FF0000'>Une erreur du type "
. "<i>E_USER_NOTICE</i> s'est produite :</h3>"
. "<u>Numéro :</u> " . $numero_erreur
. "<br><u>Message :</u> " . $message_erreur . "<br>";
break;
default:
echo "<h3 style='color:#FF0000'>Une erreur d'un type "
. "inconnu s'est produite :</h3>"
. "<u>Numéro :</u> " . $numero_erreur
. "<br><u>Message :</u> " . $message_erreur . "<br>";
break;
}
}
function calc_moy ($note, $total)
{
$temp = 0;
if ( !is_numeric($total) || $total != sizeof($note))
trigger_error("Le nombre de notes n'est pas un nombre ou "
. "n'est pas égal au total des notes : " . $total, ERREUR_FATALE);
if (!is_array($note))
{
trigger_error("Un tableau de notes est attendu : " . $note . " !", ERREUR);
return null;
}
for ($i = 0; $i < sizeof($note); $i++)
{
if (!is_numeric($note[$i]))
{
trigger_error("La valeur à la position " . $i . "
. "n'est pas un nombre : " . $note[$i] . " !", AVERTISSEMENT);
$total--;
}
else
{
$temp += $note[$i];
$moyenne = $temp/$total;
}
}
return number_format($moyenne, 2, ',', ' ');
}
$gestion_erreur = set_error_handler("gestionnaire_erreur");
echo "<h4>Création d'un tableau avec des notes.</h4>";
$tableau = array(11.25, 14.5, "AB", 15.75, 18, 9.75, 10.25, "C");
echo "tableau[";
for($i = 0; $i < sizeof($tableau); $i++)
{
$sep = $i == sizeof($tableau) - 1 ? "]<br>" : ", ";
echo $tableau[$i] . $sep;
}
echo "###############################<br>";
echo "<h4>Appel de fonctions provoquant plusieurs avertissements</h4>";
$moy = calc_moy($tableau, sizeof($tableau));
echo "Moyenne : " . $moy;
echo "<br>###############################<br>";
echo "<h4>Argument erroné provoquant une erreur.</h4>";
$moy = calc_moy("20, 11, 8, 12.85", 1);
var_dump($moy);
echo "<br>###############################<br>";
$tableau = array(11.25, 14.5, 15.75, 18, 9.75, 10.25);
echo "<h4>Appel de fonctions provoquant une erreur d'un type inconnu.</h4>";
$moy = calc_moy($tableau, sizeof($tableau));
echo "Moyenne : " . $moyenne;
echo "<br >###############################<br>";
echo "<h4>Argument erroné provoquant une erreur fatale.</h4>";
$moy = calc_moy($tableau, "A");
echo "###############################<br>";
?> |