PHP:从另一个脚本中回显heredoc

时间:2013-01-01 16:20:35

标签: php while-loop echo heredoc

我无法将一个php文件中的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脚本中,我在想要打印heredoc的地方开始一个php子句。代码是:

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

然而,这仅打印来自while循环的最后一个heredoc字符串,并且不会通过每次迭代回显每个heredoc。

2 个答案:

答案 0 :(得分: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>
}

请注意.=

答案 1 :(得分:1)

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

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