PHP parse/les erreurs de syntaxe; et comment les résoudre?

Tout le monde court dans les erreurs de syntaxe. Même les programmeurs expérimentés de faire des fautes de frappe. Pour les nouveaux arrivants, c'est juste une partie du processus d'apprentissage. Toutefois, il est souvent facile à interpréter les messages d'erreur tels que:

PHP Parse error: syntax error, unexpected '{' in index.php sur la ligne 20

Le symbole inattendu n'est pas toujours le vrai coupable. Mais le numéro de la ligne donne une idée approximative de l'endroit où commencer à chercher.

Toujours regarder la code contexte. La syntaxe erreur est souvent caché dans la ou dans précédentes lignes de code. Comparez votre code contre des exemples de syntaxe dans le manuel.

Alors que tous les cas ne correspond à l'autre. Pourtant, il y a quelques les étapes générales pour résoudre les erreurs de syntaxe.
Cette référence a résumé les écueils les plus courants:

Étroitement liés références:

Et:

Tout Débordement de Pile est aussi accueillant recrue codeurs, c'est surtout destinée aux professionnels les questions de programmation.

  • De répondre à tout le monde de codage des erreurs et étroit fautes de frappe est majoritairement considérées comme hors-sujet.
  • Merci donc de prendre le temps de suivre la étapes de base, avant l'affichage de la syntaxe de la fixation des demandes.
  • Si vous avez encore à, s'il vous plaît montrer votre propre résolution de l'initiative, de la tentative de correctifs et de votre processus de pensée sur ce qu'il regarde ou peut-être faux.

Si votre navigateur affiche des messages d'erreur tels que "SyntaxError: caractère illégal", alors ce n'est pas vraiment php-connexes, mais un javascript-erreur de syntaxe.


Les erreurs de syntaxe soulevées sur le code du fournisseur de: Enfin, considérer que, si l'erreur de syntaxe n'a pas été soulevée par l'édition de votre base de code, mais après un fournisseur externe package d'installation ou de mise à niveau, il pourrait être dû à la version de PHP incompatibilité, afin de vérifier besoins des fournisseurs à l'encontre de votre plate-forme de l'installation.

  • Ce n'est pas assez de données pour être une réponse, mais on pourrait écrire un analyseur avec parsekit_compile_string, et de mettre davantage l'amicale des réponses sur elle. Si elle est intégrée dans votre IDE, cela pourrait être très instructif.
  • Vous mettez une quantité impressionnante de travail dans ce. Le Respect de cette. Il est probablement très bon pour les enseignants à apprendre à jeûner signaler des erreurs ou de ceux qui créent des IDEs ou de mettre en œuvre des solutions rapides. Cependant, IDEs va déjà faire la plupart de ce travail pour vous, comme @Panique suggère. En outre, im de nombreux cas, le début de nouveau à partir de zéro est une bonne option.
  • Devrions-nous ajouter PHP 7 erreurs de prévention?
  • Bien sûr, si vous en avez un, ou tout simplement un lien même. Je n'ai pas encore vu les questions moi-même. (Si il est assez intéressant, je vais le jeter dans un bounty.. 🙂
  • mario, je vous recommande de prendre votre erreur spécifique réponses ici et décompressez-les dans leur propre Q&Une des paires (ou de contribuer à des questions existantes, lorsqu'elles existent), puis supprimer les réponses à partir d'ici, de mettre à jour l'index de lien pour les questions distinctes, et le drapeau de cette question pour le verrouillage. Le contenu que vous avez créé ici est génial, mais son utilité est handicapé par un manque de localisation sur Google, j'ai découvert cette réponse aujourd'hui pour la première fois après être actif sur le Débordement de la Pile pendant des années.
  • Quand je Google pour l'erreur des noms cités dans la question ici, je ne trouve pas ce post sur la première page de Google, jamais. C'est un énorme gaspillage de ce qui est autrement un travail fantastique! Googler "unexpected T_STRING" me met ce morceau d'ordures qui a 50% que de nombreux points de vue l'ensemble de votre erreur de référence ici. Cela pourrait facilement être résolu par l'extraction de la sortie Q&Une des paires avec de bons titres. Voir aussi: meta.stackoverflow.com/questions/314618/...
  • Entièrement d'accord. Mais cette référence est un test de ballon encore. C'est en bordure de sur hors-sujet, car il couvre plusieurs sujets à la fois et ne veut pas de l'aide googleability par lui-même. Ce qui, bien sûr, il faut. Outsouring en plus les résultats du classement (et en espérant qu'il y reste) est le plan à long terme. Pour le moment, il est juste utilisé comme mémorable de référence pour les nouveaux arrivants-friendly dupe de clôture - parce que la recherche d'un raccord exacte T_STRING réponse était presque impossible déjà.
  • Je ne suis pas sûr de ce que vous empêche de migrer la plupart du contenu à l'auto-répondu Q&Une des paires maintenant? Pour les réponses où vous couvrir plusieurs types d'erreur dans un post, je peux voir comment cela pourrait exiger de la réflexion et de soins, mais c'est seulement un couple de postes. Je devais déménager tout le reste dès maintenant moi-même sauf que c'est votre contenu (et je n'ai pas la possibilité de supprimer les messages ici une fois que je suis fait). Aussi loin que topicness va, il ya quelques indices de référence de ce genre et j'avais farouchement défendre le droit de celui-ci d'exister... tant que le contenu est transférée.
  • Serait unexpected 'else' (T_ELSE) relèvent de cette Q&A? J'ai remarqué quelques questions ces derniers temps, mais n'était pas sûr à 100% si je pouvais utiliser cette question pour les fermer avec. Un posté aujourd'hui stackoverflow.com/q/37499362
  • Je pense que la plupart des causes sont similaires à la T_IF / T_FOREACH / ... bloc. Mais j'ai voulu compiler un plus personnalisé résumé pour les if/ELSE/ELSEIF questions.
  • Ne sais pas comment cette phrase, mais il faut Q&A peut-être un peu réécrit et plus structurée? (temp commentaire)
  • Edit loin! - C'est presque toujours le projet initial, ce n'était pas destiné à le rester. (Lit encore trop comme un livre/tutoriel intro). L'ensemble du format de la réponse est peut-être bien.
  • Eh bien, je pense que vous avez des idées comment vous aimeriez qu'il ou pense qu'il serait mieux ou pas? Comme vous l'avez dit que vous avez voulu externaliser ce genre de choses. Sinon, je voudrais faire un résumé projet et ensuite vous pouvez le dire si c'est mieux ou pire? 🙂
  • Nah, juste lui donner tourbillon ici. Je ne suis pas vraiment attaché à toute formulation caprice ou de la structure ;} Aussi, c'est la CW, après tout (doit avoir été dès le départ). Et, les mods sont endormis, donc l'éditer de suite!!!
  • Vous avez déjà fait un bon départ avec cette référence. Je ne sais pas si je peut rivaliser avec ça. Se sent juste comme j'échoue à chaque fois j'ai même essayer.
  • Vous le savez, je souhaite que j'avais eu cette liste quand j'étais en train d'apprendre le PHP il y a des années.Très utile, surtout pour les débutants.