Il ya plusieurs bugs PHP courantes que les programmeurs introduisent lors de l'écriture du code PHP . Certains des bogues des messages d'erreur de l' interprète, mais les messages d'erreur souvent ne concernent pas le bug réels et peut pointer vers une ligne complètement différente dans le script. D'autres bogues ne causent aucun message d'erreur du tout, mais provoquent le programme à se comporter différemment que prévu. Il est utile d'examiner ces bugs communs , parce que ces erreurs sont commises par les débutants et les programmeurs expérimentés. En utilisant un opérateur d'affectation dans une expression
conditionnelle Le signe égal est un opérateur d'affectation en PHP. Par exemple , l'instruction suivante affecte la valeur de cinq à la variable $ x:
$ x = 5 ;
Deux signes égaux , ensemble, forment un opérateur conditionnel . Par exemple , l'instruction suivante affecte la valeur trois à la variable $ y , si la variable $ x est égal à cinq :
if ($ x == 5 ) $ y = 3;
< p > un bug PHP commun consiste à omettre un des signes égal dans les expressions conditionnelles . Cela provoque l'interprète d'exécuter une mission , puis une évaluation conditionnelle à la suite de la cession, pour qui toute valeur non nulle évaluera à titre d'exemple , considérons la déclaration suivante «vrai». :
if ($ x = 5) $ y = 3;
la variable $ y sera toujours égal à trois, parce que la valeur est affectée à cinq , au lieu de par rapport à la variable $ x. Depuis cinq est non - nulle, le résultat sera toujours évaluée comme «vrai».
L'omission de la citation suivi d'une chaîne
Un autre bug commun PHP se produit lorsque vous n'avez pas à fermer correctement une chaîne avec une citation de fuite. C'est facile à faire , surtout si vous mélangez guillemets simples et doubles dans la même chaîne . Il est parfois difficile de retracer la source de ce bug parce que le message d'erreur peut être très différent du vrai problème , et l'interprète indique souvent une ligne qui est passé plusieurs lignes où le vrai problème. C'est parce que l'interprète continue à essayer de traiter le code en dépit de la citation manquante. Considérez le script suivant:
< php $ chaine1 = ' Et elle a dit , «Je me demande pourquoi ? " ; Chaîne_2 $ =' Et il a répondu: « Je pense que je connais la réponse ! " ? ; '; if ( plot_path1 $ ) echo $ chaine1 ; elseecho chaîne_2 $;
Ce code génère une erreur " T_STRING inattendu» qui pointe vers la ligne contenant l' instruction "if" , qui est de deux lignes ci-dessous où le vrai problème.
Oubliant le «$» lors du passage entre les langues
programmes PHP
ont souvent deux balises HTML et du code JavaScript entrecoupées avec un script PHP. Lors de la commutation entre PHP et JavaScript , il est facile d'oublier la langue que vous utilisez et d'adopter les normes du langage de script mal. Une erreur courante consiste à omettre le signe dollar devant une variable PHP, car il est nécessaire en PHP , mais pas dans JavaScript. Par exemple , le script suivant omet le signe du dollar à partir de la variable "i" dans la boucle "for" après le code JavaScript de code:?
< Php $ au total = somme ($ parts) ; ? . ? > for (i = 0 ; i < 25; i + +) { processus (point [i]) ;} ? > les points d' interprète de la ligne à l'erreur , mais les questions le message d'erreur " unexpected ' =' , s'attendant ';' " < br >
Y compris une virgule après «si» ligne
Comme la plupart des lignes en fin de PHP dans un point-virgule , un bug commun PHP est d'inclure un point-virgule après la ligne avec un "if" . Cela peut être un bug difficile à traquer car il ne déclenche un message d'erreur . Par exemple , le script suivant sera toujours echo " Low sur l'inventaire ! " En raison de la virgule à la fin de la ligne avec le "if" . Le point-virgule élimine efficacement l'expression conditionnelle , car elle met fin à la "if" sans évaluer l'expression
< phpif ( $ count < 5); . ? {Echo "Low sur l'inventaire ! " ; }