让我先显示我的代码:
第1部分
<?php foreach($entries['items'] as $entry) : ?>
<audio preload="none" title="<?php echo $entry->title; ?>" data-date="<?php echo date("M d Y",strtotime($entry->pubDate)); ?>">
<?php if ( $entry->url != "" ) { ?>
<source src="<?php echo $entry->url; ?>" type="audio/mpeg" />
<?php } else { ?>
<source src="<?php echo $entry->guid; ?>" type="audio/mpeg" />
<?php } ?>
<!-- <source src="ogg_version.ogg" type="audio/ogg" /> -->
</audio>
<?php endforeach; ?>
第2部分
<?php
foreach($entries['items'] as $entry) {
$output = '<audio preload="none" title="'.$entry->title.'" data-date="'.date("M d Y",strtotime($entry->pubDate)).'">';
if ( $entry->url != "" ) {
$output .= '<source src="'.$entry->url.'" type="audio/mpeg" />';
} else {
$output .= '<source src="'.$entry->guid.'" type="audio/mpeg" />';
}
$output .= '</audio>';
return $output;
}
第1部分没问题,但第2部分只返回一个条目。我无法识别错误。
答案 0 :(得分:3)
更改
<?php
foreach($entries['items'] as $entry) {
$output = '<audio preload="none" title="'.$entry->title.'" data-date="'.date("M d Y",strtotime($entry->pubDate)).'">';
到这个
<?php
$output = "";
foreach($entries['items'] as $entry) {
$output.= '<audio preload="none" title="'.$entry->title.'" data-date="'.date("M d Y",strtotime($entry->pubDate)).'">';
每次循环时,foreach循环都会分配新值。您需要初始化$ output变量然后连接它。
答案 1 :(得分:3)
这是一个逻辑错误。 return
指令在第一次迭代时退出循环。
代码的基础是:
foreach ($somethings as $something) {
// first iteration has begun
doSomethingWith($something); // done
return $something; // done, quite the loop
}
答案 2 :(得分:2)
$output = '<audio preload="none" title="'.$entry->title.'" data-date="'.date("M d Y",strtotime($entry->pubDate)).'">';
应该是
$output. = '<audio preload="none" title="'.$entry->title.'" data-date="'.date("M d Y",strtotime($entry->pubDate)).'">';
return
调用应该在循环之外
答案 3 :(得分:2)
你已经从循环中返回了你的价值。这将不允许循环第二次执行。
试试这段代码。
<?php
$output='';
foreach($entries['items'] as $entry) {
$output .= '<audio preload="none" title="'.$entry->title.'" data-date="'.date("M d Y",strtotime($entry->pubDate)).'">';
if ( $entry->url != "" ) {
$output .= '<source src="'.$entry->url.'" type="audio/mpeg" />';
} else {
$output .= '<source src="'.$entry->guid.'" type="audio/mpeg" />';
}
$output .= '</audio>';
}
return $output;
答案 4 :(得分:1)
试试此代码
<?php
$output='';
foreach($entries['items'] as $entry) {
$output .= '<audio preload="none" title="'.$entry->title.'" data-date="'.date("M d Y",strtotime($entry->pubDate)).'">';
if ( $entry->url != "" ) {
$output .= '<source src="'.$entry->url.'" type="audio/mpeg" />';
} else {
$output .= '<source src="'.$entry->guid.'" type="audio/mpeg" />';
}
$output .= '</audio>';
}
return $output;