3 votes

Erreur d'analyse : erreur de syntaxe, fin inattendue dans $end E:\xampp\htdocs\announcements\announcement.php sur la ligne 143

Je reçois ce message d'erreur

Erreur d'analyse : erreur de syntaxe, inattendu Fin dans E:\xampp\htdocs\announcements\announcement.php sur la ligne 143

La ligne 143 est la dernière ligne du fichier PHP. Lorsque je commente

$htmlcode=<<<eod
<div>$question</div>
<div>$option1  $option2  $option3  $option4</div><br/>
eod;    
echo $htmlcode;

L'erreur a disparu. Qu'est-ce qui ne va pas ?

4voto

Peter Lindqvist Points 6812

Vous avez des espaces après eod;

Comme indiqué dans le manuel

Il est très important de noter que le ligne contenant l'identifiant de fermeture ne doit ne doit contenir aucun autre caractère, sauf éventuellement un point-virgule ( ;). Cela signifie que notamment que l'identifiant ne doit pas être indenté et qu'il ne doit pas y avoir d'espace ou de tabulation d'espace ou de tabulation avant ou après le point-virgule. Il est également important de réaliser que le premier caractère avant l'identifiant de fermeture doit être un saut de ligne tel que défini par le système système d'exploitation local. Il s'agit de \n sur UNIX y compris Mac OS X. Le délimiteur de fermeture délimiteur de fermeture (éventuellement suivi par un point-virgule) doit également être suivi d'un saut de ligne.

2voto

mauris Points 19666

Ce que j'ai découvert, c'est qu'après votre eod; vous aviez des espaces blancs.

Enlevez les espaces et cela fonctionnera bien.

Testé :

<?php
$htmlcode=<<<eod
<div>$question</div>
<div>$option1  $option2  $option3  $option4</div><br/>
eod;
echo $htmlcode;
?>

1voto

Adam Maras Points 14517

Enveloppez les noms de variables à l'intérieur de votre heredoc bloc avec { y } comme ça :

$htmlcode=<<<eod
<div>{$question}</div>
<div>{$option1}  {$option2}  {$option3}  {$option4}</div><br/>
eod;
echo $htmlcode;

Le problème est que PHP s'étouffe du fait qu'il n'y a pas d'espace entre les champs $question y $option4 variables de l'ouverture < pour votre clôture div tags.

Assurez-vous également qu'il y a pas de l'espace après le point-virgule qui suit votre eod délimiteur. La seule chose autorisée sur cette ligne est votre délimiteur et un point-virgule si nécessaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X