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 tableaux

L'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