Maison développement back-end tutoriel php Analyse des erreurs PHP

Analyse des erreurs PHP

May 28, 2017 am 09:45 AM
错误分析

Même les programmeurs expérimentés sont voués à commettre des erreurs pendant le processus de programmation. Les messages d'erreursont non seulement inutiles mais souvent frustrants si le développeur ne peut pas les remarquer et comprendre ce que signifie le message d'erreur du compilateur, donc une meilleure compréhension des messages d'erreur peut aider à gagner considérablement du temps sur la recherche et la correction du contenu erroné.

Déclaration de variable  : Si vous déclarez une variable dans une instruction comme suit : $var = 'value'; le compilateur trouvera d'abord la valeur de la moitié droite de l'instruction , c'est cette partie de l'instruction qui provoque souvent des erreurs. Si vous utilisez une syntaxe incorrecte, vous obtiendrez une erreur d'analyse.

Erreur d'analyse :

Par exemple, Erreur d'analyse : Erreur d'analyse, T_
WHILE inattendu dans c:program filesapache groupapachehtdocsscript.php à la ligne 19 Les erreurs d'analyse se succédaient et PHP arrêtait d'exécuter le script après la première erreur d'analyse à chaque fois que l'erreur précédente était déterminée. De plus, les erreurs d'analyse contiennent très peu d'informations, avec presque aucun rapport sur le numéro de ligne où l'erreur s'est produite. Par exemple, des mots-clés prédéfinis sont utilisés dans l'expression
, par exemple : while = 10 ; while est un mot-clé prédéfini et ne peut pas se voir attribuer de valeur. Les mots-clés prédéfinis incluent while, function, etc. Nous ne pouvons pas utiliser ces mots-clés prédéfinis pour nommer des variables, sinon le compilateur signalera une erreur. Parmi eux, T_IF représente if(), T_WHILE représente while(), T_FOR représente for(), etc. Erreurs courantes :

Il existe également des erreurs courantes, telles que des déclarations ne se terminant pas par un point-virgule (;),

guillemets manquants dans la chaîne
, etc. De plus, les accolades (}) ne sont pas utilisées pour terminer une fonction ou une boucle, par exemple : function UselessFunction() {for($ i < 0; $i < 10; $i++){
}

générera l'erreur suivante :

Erreur d'analyse : erreur d'analyse inattendue dans c:program filesapache groupapachehtdocsereg2.php à la ligne 9

Puisque la fonction UselessFunction ne se termine pas par une accolade (}), le compilateur PHP continuera à rechercher l'accolade fermante jusqu'à ce qu'elle atteigne la fin du fichier. Étant donné que le compilateur ne trouve pas d'accolade correspondante, il signale une erreur de fin de fichier.
Si la hiérarchie du code est correctement reflétée, les messages d'erreur deviendront très évidents. Sinon, le code sera très difficile à déboguer. Par conséquent, assurez-vous d'indiquer la structure hiérarchique du code, ce qui permettra aux développeurs ultérieurs d'améliorer plus facilement le code.

MySQL Erreur :

Un autre type de message d'erreur est l'erreur MySQL, qui provoque souvent des maux de tête chez les novices PHP, par exemple : Avertissement : l'argument fourni n'est pas un MySQL valide result

resource in...La mauvaise ligne signalée ci-dessus peut être : while($row =
mysql_fetch_array($result)) {} Le paramètre $result n'est pas valide ressource, car query
a échoué et mysql_fetch_array ne sera pas traité. Toute requête avec une syntaxe invalide ou un échec de connexion à la base de données doit être testée dans la console MySQL. Erreurs plus faciles

Notez la différence entre

echo
    et
  1. print

     : echo et Print sont tous deux utilisés pour la sortie, mais il existe encore des différences subtiles entre les deux. Il n'y a pas de valeur de retour après la sortie d'écho, mais print a une valeur de retour et renvoie false lorsque son exécution échoue. Par conséquent, elle peut être utilisée comme une fonction normale, par exemple, si $r = print "Hello World" est exécuté, la valeur de la variable $r sera 1. De plus, l'instruction echo dans le code s'exécute légèrement plus rapidement que l'instruction print.
    Notez la différence entre une chaîne vide ('') et

    NULL
  2.  :
  3. Les chaînes vides et NULL en PHP sont stockées avec une valeur de 0, mais Leurs types ne sont pas les mêmes. Le premier est

    string, tandis que le second est NULL. On peut voir que les valeurs de chaîne ('') et NULL sont égales mais les types sont différents.

  4. Distinguer la différence entre == (égal ET) et === (ET congru) :
    Les deux appartiennent à l' opérateur de comparaison , == (égal) Il compare uniquement si les valeurs sont égales, tandis que === (tous égaux) compare non seulement si les valeurs sont égales, mais compare également si les types sont égaux, ce qui est plus strict.

  5. Distinguer la différence entre include et require : Les fonctions de
    include() et require() sont fondamentalement les mêmes, mais dans l'utilisation, il existe également quelques différences. include() est une fonction d'inclusion conditionnelle, tandis que require() est une fonction d'inclusion inconditionnelle. Par exemple, dans le code suivant, si la variable $a est vraie, le fichier a.php sera inclus : if($a){
    include("a.php");
    }
    Et require() est différent de include(). Quelle que soit la valeur prise par $a, le code suivant inclura le fichier a.php :
    if($a){
    require( "a .php");
    >
    En termes de
    gestion des erreurs, utilisez l'instruction include. Si une erreur d'inclusion se produit, le programme ignorera l'instruction include bien que le message d'erreur le fasse. s'affichera, le programme continuera à s'exécuter. Cependant, l'instruction require provoque une erreur fatale.

  6. Notez la différence entre is

    set et vide : empty sert à déterminer si une variable est "vide", tandis que isset sert à déterminer si une variable a été mis en place.

  7. Distinguer la différence entre self :: et ceci-->:

    Lors de l'accès à des variables ou méthodes membres dans une classe PHP, si elle est référencée par
    Si une variable ou une méthode est déclarée const (constant) ou static (staticattribut), alors l'opération de domaine doit être utilisé l'opérateur ::, et si la variable ou la méthode référencée n'est pas déclarée comme const ou static, alors utilisez l'opérateur de pointage ->.


    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Apr 06, 2025 am 12:02 AM

Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Apr 03, 2025 am 12:04 AM

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Comment déboguer le mode CLI dans phpstorm? Comment déboguer le mode CLI dans phpstorm? Apr 01, 2025 pm 02:57 PM

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Apr 01, 2025 pm 03:12 PM

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

See all articles