PHP:反转字符串中对象的顺序


PHP: Invert order of objects in a string

我有这个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中处理字符串的更多细节。