Nexen: 10 erreurs PHP classiques
Par David KAPOLA, lundi 9 octobre 2006 à 17:42 :: Lu sur le Web :: #2518 :: rss
Nexen nous propose un lien vers un article du site www.treesforlunch.com, listant les 10 erreurs les plus courantes lors de codage en PHP.
1. Oubli du point-virgule ' ; '
<? $test = 1 echo $test; ?>
2. Pas assez de signes égal '='
C'est une faute difficile à repérer car elle ne génère pas d'erreur.
$test = 0;
while ($test = 0){
$test++;
}
3. Mauvaise variable appelée
<?
$test = 0;
while ($test == 0){
$Test++;
}
?>
$test n'est pas la même variable que $Test.
4. Oubli du signe $ devant le nom d'une variable
Faute facile à repérer car elle génère souvent une erreur de type "parse error...."
5. Problèmes de "quotes"
Erreur générée si vous employez trop ou pas assez de quotes. De même si vous utilisez le mauvais type de quotes (simple ou double), vous en avez trop lorsque vous mettez des quotes à l'intérieur d'autres quotes comme dans l'exemple suivant.
$test = "<table width="100%">";Voici la solution:
$test = "<table width='100%'>";ou bien
$test = '<table width="100%">';
6. Sorties invisibles
Certains actions doivent être exécutées avant l'affichage de données.
<html>
<?
header("location: URL");
?>
Ceci génerera une erreur car <html> est placé devant l'élément "header".Le code suivant devrait fonctionner:
<?
header("location: URL");
?>
<html>
7. Identifiants dans les tableauxL'identifiant de la première valeur d'un tableau PHP est zéro (0). Toutefois il semble logique de pense que l'identifiant de la première valeur sera 1. Voici donc une erreur classique:
<?
$test = 1;
while ($test <= 3){
$array[] = $test;
$test++;
}
echo $array[3];
?>
Rien n'est affiché car:
$array[0] = 1 $array[1] = 2 $array[2] = 3
8. Inclusion de code PHP
Quand un fichier est inséré dans une page PHP par le biais de la fonction include(), il semble logique que le fichier sera interprété en tant que fichier PHP et que les scripts de ce fichier seront exécuté a hauteur de son insertion. Cependant, PHP ne le voit pas comme ça. Si un fichier nommé fiichier1.php contient ceci :
if ($test == 1) echo "bonjour!";et que dans un code j'écris ceci
<?php
$test = 1;
include ("file1.inc");
?>
j'espère voir apparaître "bonjour!", mais la page affiche ceci:
if ($test == 1) echo "Hi";On voit clairement que la page insérée à été interprétée en tant que code HTML.
Pour résoudre ce problème, il faut inclure les balises d'ouverture et de fermeture de code PHP :
<?php if ($test == 1) echo "bonjour!"; ?>
9. Absence d'accolades ou parenthèses
Les parrenthèses et les accolades vont par paires et doivent être utilisées en tant que telles. Ouvir une { ou une ( sans la fermer avec une ) ou une } génerera une erreur. En voici un exemple :
<?php if ( isset($variable) ?>Il est difficile de trouver ou se trouve la balise non-fermée lorsque vous avez des blocs à l'intérieur d'autres blocs...! Voici la bonne syntaxe :
<?php
while ($test < 3)
{
if ($test2 != "yes")
{
if ($test3 > 4)
{
echo "go";
}
}
?>
10. Confondre les accolades '{...}' et les parenthèses '(...)'Erreur classique après quelques heures de programmation !!
Voir l'article complet






Commentaires
#1 - Le lundi 20 novembre 2006 à 02:23, par Ziolrooski
#2 - Le jeudi 23 novembre 2006 à 02:01, par Armel FAUVEAU
#3 - Le mardi 19 décembre 2006 à 20:46, par Kablumy
#4 - Le vendredi 26 janvier 2007 à 11:43, par kablumy
#5 - Le mardi 13 février 2007 à 19:47, par zeb
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.