-2

我无法将heredoc一个 php 文件中的语句回显到另一个文件中。我有一个脚本用于检索 API 数据库信息,然后将该信息格式化为一个heredoc以将信息回显到index.php页面中。我拥有的代码是:

while($artist_info = $artist_details_resource->fetch_assoc()){
   $artist = <<<DOC
             <img src="{$artist_info['image_url']}" alt="$artist_info['artist_name']" />
             <p>{$artist_name}</p>
DOC;
}

在 index.php 脚本中,我在希望打印此 he​​redoc 的地方开始了一个 php 子句。代码是:

<?php
  if($artist){
     echo $artist;
  }
?>

但是,这只会打印 while 循环中的最后一个 heredoc 字符串,并且不会在每次迭代中回显每个 heredoc。

4

2 回答 2

2

为什么会呢?您不是在循环中回显它,也不是在连接字符串。您在每次迭代时都会覆盖字符串。

while($artist_info = $artist_details_resource->fetch_assoc()){
   $artist .= <<<DOC
             <img src="{$artist_info['image_url']}" alt="$artist_info['artist_name']" />
             <p>{$artist_name}</p>
}

注意.=

于 2013-01-01T16:23:06.540 回答
1

当然,这只会打印最后一个字符串,因为您使用$artist = <<<DOC所以您会在每个循环中覆盖 $artist 变量的值。

尝试$artist .= <<<DOC或将其放入数组中:$artists[] = <<<DOC

于 2013-01-01T16:25:41.783 回答