Il est quasiment obligatoire que vous ayez déjà rencontré cette erreur et peut-être tombez-vous sur cet article après une recherche d’explication sur le net car vous venez de la rencontrer.
Cette erreur est assez courante lorsque l’on débute, mais elle arrive aussi lorsqu’on a de mauvaises habitudes de présentation du code, ou lorsque l’on code depuis plus de 4h sans pause 😀

Signification

Cette erreur est plutôt simple à comprendre, mais moins à corriger lorsque votre code est très long.
Elle signifie : « Erreur d’analyse syntaxique : erreur de syntaxe, fin de code inattendue ».
Autrement dit, quelque chose ne se termine pas correctement dans votre code.

Pourquoi ?

Il arrive qu’un caractère « saute » dans notre code, par un mauvais copier/coller, une touche rebelle du clavier, ou un simple oubli lors de la réécriture d’une portion, par exemple.
Voici ce qui peut provoquer cette erreur :

  • vous oubliez de fermer une parenthèse : du coup PHP analyse la suite du code comme appartenant au contenu entre parenthèses jusqu’à ce qu’il trouve la fin ;
  • vous oubliez de fermer une accolade : PHP estime donc que tout le code qui suit fait partie du même bloc jusqu’à la fin du document ;
  • vous oubliez de fermer un guillemet : PHP va chercher le prochain guillemet qui ferme la chaîne de caractères, guillemet qu’il ne trouvera pas ;

Débogue

PHP vous donne gentiment la dernière ligne de votre document en guise d’indice. C’est normal puisqu’il parcours tout votre document à la recherche du caractère manquant.
Lorsque votre script fait une centaine de lignes, le débogue « à l’œil nu » suffit bien souvent.

Si ce n’est pas le cas, je vous propose une stratégie de débogue que j’utilise parfois qui consiste à compter le nombre de caractère fermant et ouvrant.
C’est valable pour la parenthèse et l’accolade, pour le guillemet ou l’apostrophe (simple quote) il vous faudra vérifier que le résultat du compte soit un nombre pair.

Pour cela, votre outil d’édition peut vous aider. Pour ma part j’utilise Notepad++ qui permet de compter le nombre d’occurrences d’une chaîne dans votre document actif.
Faites CTRL + F pour ouvrir le panneau de recherche.

Rentrez le caractère recherché dans le champ « Recherche », et cliquez sur le bouton « Compter ».
Une fenêtre apparaît avec le nombre d’occurrences trouvées.

Si vous souhaitez conserver un historique des comptes, vous pouvez aussi utiliser le bouton « Rechercher dans le document actuel » qui sert à la base à afficher les lignes du document où le caractère recherché apparaît, mais qui fait aussi un compte des occurrences.

Éviter cette erreur

Il n’y a pas de secret, une bonne présentation du code est primordiale.
Aussi, au lieu d’une présentation de ce type :

<?php
if($var<=10) {
for($i=0; $i<$var;$i++) {
echo '<span class="counter nb'.$i.'">'.$i.'</span>';
}
}
?>

préférez une présentation indentée et aérée :

<?php
   if( $var <= 10 )
   {
      for( $i=0 ; $i < $var ; $i++ )
      {
         echo '<span class="counter nb' . $i . '">' . $i . '</span>';
      }
   }
?>

Certains logiciels d'édition vous permette d'automatiser des tâches répétitives, comme par exemple, avec l'auto-complétion, la fermeture d'une parenthèse ou d'une accolade lors de son ouverture, ou la création de macro pour la syntaxe d'une boucle, etc. Activez-les et abusez-en !

Si vous avez d'autres techniques n'hésitez pas 😉

J'espère que cet astuce vous sera utile.
Bon code !