1

我有这个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;

但似乎没有任何好处。

4

2 回答 2

0

您试图在设置变量之前使用它。尝试这个:

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 中处理字符串的更多详细信息。

于 2013-06-07T12:53:10.857 回答
0
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

于 2013-06-07T12:53:45.283 回答