par
albat » 30 nov. 2008, 11:04
En matière d'indentation, les goûts sont multiples et variés,
chacun étant persuadé d'avoir
LA méthode idéale ;
le nombre de débats (trolls ?) sur ce sujet en témoigne.
Pour ma part, j'utilise une méthode que j'appliquais quand je codais en Pascal, C et C++
qui, à défaut d'être la meilleure (je ne participe pas à cette quête d'un Graal plus qu'hypothétique),
présente l'avantage de prévenir les problèmes d'accolades tel que celui que tu viens de rencontrer.
Pour exemple, ce genre de code est pour moi une aberration :
function machin() {
if ($condition) {
action();
}
return $valeur;
}
Voici ma façon de faire :
function machin()
{ if ($condition)
{ action();
}
return $valeur;
}
Les règles que j'ai choisi d'appliquer :
- accolades ouvrante et fermante à la verticale l'une de l'autre.
- position des accolades relative à l'opérateur qui les commande (if, while, for, etc.)
- léger retrait des instructions contenues dans une paire d'accolades
D'aucuns trouveront certainement des inconvénients à cette méthode.

Elle n'en apporte pas moins l'avantage de prévenir toute erreur d'accolade,
tant l'indentation de celles-ci est visuelle et immédiatement explicite.
Voici ce que cela donnerait avec ton code :
if ($nombr_result) // si Character à des amis
{ while ($info=mysql_fetch_array($info2))
{ echo '<td width="120">';//ouverture de la première colonne
echo '<b><center><img src="images/items/'.$info['item_id'].'.gif"/></center></b>';
echo '</td>'; //fermeture
$colonne++;
if ($colonne==10) //la colonne 3 est éteinte
{ $colonne=0; // réinitialisation des colonnes
$ligne++; //incrémentation des lignes
echo '</tr>'; //fermeture de la ligne en cours
if ($ligne<1)
echo '<tr>'; //ouverture de la prochaine ligne
}
}
} // L'ACCOLADE MANQUANTE
else // Si Character est un sans ami
{ echo '<td width="120">';//ouverture de la première colonne
echo "pas d'amis";
echo '</td>'; //fermeture
echo '<tr>';
}
// suite du code