Exemple [voir]
<?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>";
?>