php - PHP 错误:HeredocStart 预期,语法错误意外文件结尾
问题描述
我正在为我的在线商店开发一个 PHP 脚本,当我尝试使用 Heredocs 时出现此错误。当我删除$prodotti
变量时,一切正常。
<?php
function show_products(){
global $connection;
$query = "SELECT * FROM prodotto";
$result = mysqli_query($connection, $query) or die(mysqli_error($connection));
if($num_rows = mysqli_num_rows($result)){
while($row = mysqli_fetch_assoc($result)){
$prodotti = <<<STRINGA_PDT
<div class="col-lg-4 col-md-6 mb-4">
<div class="card h-100">
<img class="card-img-top" src="../risorse/IMAGES/{$row['immagine']}" alt="">
<div class="card-body">
<h4 class="card-title">
<a href="prodotto.php?id={$row['id_prodotto']}">{$row['nome_prodotto']}</a>
</h4>
<h5>€{$row['prezzo']}</h5>
<p class="card-text">{$row['descr_prodotto']}</p>
</div>
<div class="card-footer text-center">
<a href="carrello.php?add={$row['id_prodotto']}"><button type="button" class="btn btn-primary btn-small">Acquista</button></a>
<a href="prodotto.php?id={$row['id_prodotto']}" class="btn btn-success btn-small">Dettagli</a>
</div>
</div>
</div>
STRINGA_PDT;
}
}
}
解决方案
我认为这是一个非常简单的情况,确保 HEREDOC 结束的标记位于行首
<?php
function show_products(){
global $connection;
$query = "SELECT * FROM prodotto";
$result = mysqli_query($connection, $query) or die(mysqli_error($connection));
if($num_rows = mysqli_num_rows($result)){
while($row = mysqli_fetch_assoc($result)){
$prodotti = <<<STRINGA_PDT
<div class="col-lg-4 col-md-6 mb-4">
<div class="card h-100">
<img class="card-img-top" src="../risorse/IMAGES/{$row['immagine']}" alt="">
<div class="card-body">
<h4 class="card-title">
<a href="prodotto.php?id={$row['id_prodotto']}">{$row['nome_prodotto']}</a>
</h4>
<h5>€{$row['prezzo']}</h5>
<p class="card-text">{$row['descr_prodotto']}</p>
</div>
<div class="card-footer text-center">
<a href="carrello.php?add={$row['id_prodotto']}"><button type="button" class="btn btn-primary btn-small">Acquista</button></a>
<a href="prodotto.php?id={$row['id_prodotto']}" class="btn btn-success btn-small">Dettagli</a>
</div>
</div>
</div>
STRINGA_PDT;
}
}
}
其他任何事情都会导致 PHP 无法将其识别为 Heredoc