-2

heredocあるphpファイルから別のphpファイルにステートメントをエコーアウトするのに問題があります。APIデータベース情報を取得し、その情報をにフォーマットして情報をページheredocにエコーするために使用されるスクリプトが1つあり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スクリプトで、このヒアドキュメントを印刷したい場所でphp句を開始します。そのためのコードは次のとおりです。

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

ただし、これはwhileループの最後のヒアドキュメント文字列のみを出力し、各反復を通じてすべてのヒアドキュメントをエコーアウトすることはありません。

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 に答える