Sözdizimi hatası, beklenmedik $ end E: error ayrıştırmak \ xampp \ htdocs \ duyurular \ hattında 143 announcement.php

3 Cevap php

Ben bu hata mesajı alıyorum

Parse error: syntax error, unexpected $end in E:\xampp\htdocs\announcements\announcement.php on line 143

Line 143 is the last line of the PHP file. When I comment out

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

The error is gone. What's wrong?

3 Cevap

Ben öğrendim ne eod;, orada bazı whitespaces vardı sonra.

Whitespaces çıkarın ve iyi çalışır.

Test:

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

Sen sonra boşluk var eod;

manual 'de belirtildiği gibi

It is very important to note that the line with the closing identifier must contain no other characters, except possibly a semicolon (;). That means especially that the identifier may not be indented, and there may not be any spaces or tabs before or after the semicolon. It's also important to realize that the first character before the closing identifier must be a newline as defined by the local operating system. This is \n on UNIX systems, including Mac OS X. The closing delimiter (possibly followed by a semicolon) must also be followed by a newline.

{ ve } böylece gibi ile heredoc blok içinde değişken adları alın:

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

Sorun PHP hiçbir boşluk ayıran sahip olduğu gerçeği üzerinde şoklar olduğunu sizin $question ve kapanış için < açıklıktan $option4 değişkenler {[(3) }] etiketleri.

Ayrıca, eod sınırlayıcı Aşağıdaki noktalı virgülden sonra no boşluk var emin olun. Gerekirse o satırında izin tek şey Ayırıcı ve bir noktalı virgül.