Maison  >  Questions et réponses  >  le corps du texte

Comment obtenir des messages d’erreur utiles en PHP ?

<p>J'essaie souvent d'exécuter un script PHP et j'obtiens simplement un écran vide. Aucun message d'erreur ; juste un écran vide. La cause peut être une simple erreur de syntaxe (parenthèses incorrectes, point-virgule manquant), un échec d'appel de fonction ou autre chose. </p> <p>Il est difficile d’identifier le problème. J'ai fini par commenter le code, en tapant des instructions "echo" ici et là, etc. pour essayer de cerner le problème. Mais il doit y avoir une meilleure solution, non ? </p> <p>Existe-t-il un moyen de faire en sorte que PHP produise des messages d'erreur utiles, comme le fait Java ? </p>
P粉283559033P粉283559033393 Il y a quelques jours469

répondre à tous(2)je répondrai

  • P粉190883225

    P粉1908832252023-08-24 14:59:54

    Ce qui suit active toutes les erreurs :

    ini_set('display_startup_errors', 1);
    ini_set('display_errors', 1);
    error_reporting(-1);

    Voir également le lien ci-dessous

    répondre
    0
  • P粉575055974

    P粉5750559742023-08-24 14:00:05

    Afficher les erreurs est désactivé par défaut car vous ne voulez pas que les « clients » voient les messages d'erreur.

    Consultez cette page dans la documentation PHP pour obtenir des informations sur 2 directives : error_reportingdisplay_errorsdisplay_errors Probablement un bug que vous souhaitez modifier.

    Vous avez donc 3 options :

    (1) Vous pouvez vérifier le fichier journal des erreurs car il contiendra toutes les erreurs (sauf si la journalisation a été désactivée). Pour activer la journalisation des erreurs, assurez-vous de modifier log_errors 配置指令设置为 On. Les journaux sont également utiles lorsque l'erreur ne se produit pas dans PHP mais est émise par le serveur Web.

    (2) Vous pouvez ajouter les deux lignes suivantes, qui vous aideront à déboguer les erreurs non syntaxiques qui se produisent dans le même fichier :

    error_reporting(E_ALL);
    ini_set('display_errors', 'On');

    Notez que sur un serveur live, ce dernier doit être réglé sur 关闭 (mais uniquement ce dernier, car vous devez toujours connaître à partir du fichier journal toutes les erreurs survenues).

    Cependant, pour les erreurs de syntaxe survenant dans le même fichier, les commandes ci-dessus ne fonctionneront pas et vous devez les activer dans php.ini. Si vous ne parvenez pas à modifier php.ini, vous pouvez également essayer d'ajouter les lignes suivantes à votre fichier .htaccess, bien que cela soit rarement pris en charge de nos jours :

    php_flag  display_errors        on
    php_value error_reporting       -1

    (3) Une autre option consiste à utiliser un éditeur qui vérifie les erreurs au fur et à mesure que vous tapez, tel que PhpEd, VSCode ou PHPStorm. Ils sont tous livrés avec un débogueur qui fournit des informations plus détaillées. (Le débogueur PhpEd est très similaire à xdebug et est intégré directement dans l'éditeur afin que vous puissiez tout faire avec 1 seul programme.)

    répondre
    0
  • Annulerrépondre