我有这个foreach输出一个链接到一个帖子,它的名字和一个图标,如果该帖子是已读/未读。
foreach (BLAHBLAH) {
$is_read = !in_array($obj->id, $unread_msgs);
$title = $obj->title;
$url = $obj->url;
$output = '<li><a href="'.$url.'">'. $title;
if ($is_read) {
$output .= ' <img src="icon-read.png" />';
} else { $output .= ' <img src="icon-unread.png" />'; }
$output .= '</a></li>';
echo $output;
}
输出格式为<li><a href="POST_URL">POST_TITLE</a><img src="READ/UNREAD_ICON"/></li>
。我想换成<li><img src="READ/UNREAD_ICON"/><a href="POST_URL">POST_TITLE</a></li>
。所以,把图片放在链接的前面。我试着玩字符串运算符,但我不是很熟悉他们。(
我也试着做一些像
$output = '<li><img src="'.$iconstatus.'"/><a href="'.url.'">'. title;
if ($is_read) {
$iconstatus = 'icon-read.png';
} else { $iconstatus = 'icon-unread.png'; }
$output .= '</a></li>';
echo $output;
但似乎没什么用
foreach (BLAHBLAH) {
$is_read = !in_array($obj->id, $unread_msgs);
$title = $obj->title;
$url = $obj->url;
$output = "<li><a href='"$url'">
<span>$title</span>
<img src='"icon-".($is_read ? '' : 'un')."read.png'" alt='"img'" />
</a>
</li>";
echo $output;
}
你可以简单地检查它是否被读取添加适当的代码到$output
您试图在设置变量之前使用它。试试这个:
if ($is_read) {
$iconstatus = 'icon-read.png';
} else { $iconstatus = 'icon-unread.png'; }
$output = '<li><img src="'.$iconstatus.'"/><a href="'.$url.'">'. $title;
$output .= '</a></li>';
echo $output;
当然,您可以简化前三行,只使用以下代码:
$iconstatus = $is_read ? 'icon-read.png' : 'icon-unread.png';
$output = '<li><img src="'.$iconstatus.'"/><a href="'.$url.'">'. $title;
$output .= '</a></li>';
echo $output;
我建议你阅读PHP字符串参考,了解如何在PHP中处理字符串的更多细节。