Types d’erreurs PHP et signalement
Comprendre les avis, avertissements et erreurs fatales, ainsi que les niveaux de error_reporting.
Types d’erreurs PHP et signalement est une leçon PHP Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage PHP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours PHP Academy comprend 4 leçons au total.
Types d'erreurs PHP
PHP possède plusieurs niveaux de gravité pour les erreurs :
- Notice — problème mineur, l'exécution continue
- Warning — problème non fatal, l'exécution continue
- Fatal Error — l'exécution s'arrête immédiatement
- Parse Error — erreur de syntaxe, l'exécution s'arrête avant de commencer
- Deprecated — la fonctionnalité sera supprimée
error_reporting()
Contrôlez les erreurs signalées par PHP avec error_reporting() :
<?php
// Show all errors (development)
error_reporting(E_ALL);
// Hide notices and deprecated
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
// Production: no display, log to file
error_reporting(E_ALL);
ini_set('display_errors', '0');
ini_set('log_errors', '1');
ini_set('error_log', '/var/log/php_errors.log');display_errors ou log_errors
Paramètres clés de php.ini pour la gestion des erreurs :
display_errors = On— afficher les erreurs dans le navigateur (développement uniquement)display_errors = Off— les masquer aux utilisateurs (production)log_errors = On— écrire dans le fichier error_logerror_log = /path/to/file— spécifier l'emplacement du journal
N'affichez jamais les erreurs aux utilisateurs en production !
Déclencher des erreurs avec trigger_error
Générez vos propres erreurs PHP avec trigger_error() :
<?php
function divide(int $a, int $b): float {
if ($b === 0) {
trigger_error('Division by zero', E_USER_WARNING);
return 0.0;
}
return $a / $b;
}
echo divide(10, 0); // triggers E_USER_WARNINGGestionnaire d'erreurs personnalisé
Enregistrez votre propre gestionnaire d'erreurs avec set_error_handler() :
<?php
set_error_handler(function(int $errno, string $errstr, string $file, int $line): bool {
$message = "[$errno] $errstr in $file:$line";
error_log($message);
if ($errno === E_USER_ERROR) {
http_response_code(500);
die('Internal error — please try again later');
}
return true; // don't execute PHP internal error handler
});
trigger_error('Custom error message', E_USER_ERROR);Sources courantes d'erreurs
Causes typiques des erreurs PHP :
- Accéder à une clé de tableau non définie → notification
- Appeler une fonction qui renvoie false, puis utiliser le résultat → avertissement
- Appeler une fonction non définie → erreur fatale
- Oublier un point-virgule → erreur d'analyse
- Diviser par zéro → avertissement (renvoie INF ou NAN)
Opérateur de suppression des erreurs @
L'opérateur @ supprime les erreurs d'une seule expression — évitez-le et utilisez une gestion appropriée des erreurs :
<?php
// Bad: hides errors silently
$result = @file_get_contents('missing.txt');
// Good: check explicitly
$result = file_get_contents('missing.txt');
if ($result === false) {
// handle the error
echo 'File not found';
}PHP 8 : JIT et changements liés aux erreurs
PHP 8 a rendu la gestion de certaines erreurs plus stricte :
- De nombreux avertissements sont devenus des TypeError/ValueError
str_contains/starts_with/ends_withremplacent les expressions régulières pour les vérifications simples- Le passage de types d'arguments incorrects déclenche par défaut une TypeError
ini_set à l'exécution
Remplacez les paramètres de php.ini à l'exécution :
<?php
// Display errors during development
if (getenv('APP_ENV') === 'development') {
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
} else {
ini_set('display_errors', '0');
ini_set('log_errors', '1');
error_reporting(E_ALL);
}Vérifier le niveau d'erreur
Détectez les niveaux d'erreur avec un ET binaire :
<?php
$level = error_reporting();
if ($level & E_NOTICE) {
echo 'Notices are reported';
}
if ($level & E_WARNING) {
echo 'Warnings are reported';
}
// Check specific error types
echo (E_ALL & E_NOTICE) ? 'E_ALL includes E_NOTICE' : 'no';Bonnes pratiques pour les journaux d'erreurs
Bonnes habitudes pour les journaux d'erreurs :
- Consignez toujours les erreurs en production
- Incluez le contexte : identifiant utilisateur, URL de la requête, horodatage
- Utilisez une journalisation structurée (JSON) pour faciliter l'analyse
- Faites tourner les fichiers journaux pour éviter de remplir le disque
- Surveillez les journaux avec des outils comme ELK, Datadog ou Papertrail
Vérification rapide
Quel type d'erreur PHP interrompt immédiatement l'exécution ?
Récapitulatif : signalement des erreurs PHP
Principes essentiels de la gestion des erreurs :
- Types d'erreurs : notification, avertissement, fatale, analyse, obsolète
- Définir le niveau avec
error_reporting() - Désactiver l'affichage et activer la journalisation en production
- Enregistrer un gestionnaire personnalisé avec
set_error_handler() - Ne supprimez jamais les erreurs avec
@dans le code de production
Questions Fréquemment Posées
La leçon « Types d’erreurs PHP et signalement » est-elle gratuite ?
Oui — le texte complet de « Types d’erreurs PHP et signalement » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours PHP Academy, passe à CoddyKit PRO. Le cours PHP Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Types d’erreurs PHP et signalement » ?
Comprendre les avis, avertissements et erreurs fatales, ainsi que les niveaux de error_reporting. Tu pratiques PHP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer PHP Academy ?
Aucune expérience préalable n'est requise. PHP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Types d’erreurs PHP et signalement » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon PHP Academy ?
Oui. Chaque leçon PHP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Types d’erreurs PHP et signalement
- Try, Catch et Finally
- Créer des exceptions personnalisées
- Journalisation des erreurs et bonnes pratiques