有没有更好的方法来编写这个PHP代码?

时间:2010-09-17 11:53:36

标签: php html function

return'
    <li>
    <a href="nano.com/' . $username . '"><img class="avatar" src="images/' . $picture . '" width="48" height="48" alt="avatar" /></a>
    <div class="tweetTxt">
    <strong><a href="nano.com/' . $username . '">' . $username . '</a></strong> '. autolink($tweet).'
    <div class="date">'.relativeTime($dt).'</div><div class="date">'. $reply_info . '</div> <a class ="reply"  href="home.php?replyto=@'. $username .'&status_id='. $id .'&reply_name=' .$username.'"> reply </a>

    </div>
    <div class="clear"></div>
    </li>';

我想知道是否有更简洁的方法来编写此代码,并考虑处理时间,如果这真的意味着什么。

P.S。这段代码是函数的一部分,这是return语句!

6 个答案:

答案 0 :(得分:3)

是。使用double quotes for the PHP string(以及HTML属性的单引号),然后您可以在字符串中使用PHP变量,如下所示:

"<a href='nano.com/$username'>";

处理时间真的是一个问题吗?我对此表示怀疑,但确定无疑。


修改:如果有人不确定在HTML属性中使用单引号,请查看this question。非常一致同意单引号是好的。如果有人能给出一个体面的反驳论点,我会很高兴听到它。

答案 1 :(得分:2)

清洁模板和php代码 - &gt;使用MVC

答案 2 :(得分:2)

您可以使用HEREDOC语法:

$auto = autolink($tweet);
$rel = relativeTime($dt);
return <<<ENDOFRETURN
    <li>
    <a href="nano.com/$username"><img class="avatar" src="images/$picture" width="48" height="48" alt="avatar" /></a>
    <div class="tweetTxt">
    <strong><a href="nano.com/$username">$username</a></strong> $auto
    <div class="date">$rel</div><div class="date">$reply_info</div> <a class ="reply"  href="home.php?replyto=@$username&status_id=$id&reply_name=$username"> reply </a>
    </div>
    <div class="clear"></div>
    </li>
ENDOFRETURN;

答案 3 :(得分:1)

是的,有一个,你不需要MVC(只有一个模板):

<li>
 <a href="nano.com/<?=$username ?>">
  <img class="avatar" src="images/<?=$picture ?>" width="48" height="48" alt="avatar" />
 </a>
 <div class="tweetTxt">
  <strong><a href="nano.com/<?=$username ?>"><?=$username ?></a></strong>
  <? echo autolink($tweet) ?>
  <div class="date"><?=relativeTime($dt) ?></div>
  <div class="date"><?=$reply_info ?></div>
  <a class="reply" href="home.php?replyto=@<?=$username?>&status_id=<?=$id?>&reply_name=<?=$username?>">
  reply
  </a>
 </div>
 <div class="clear"></div>
</li>

必读:http://wiki.yet-another-project.com/php/the_one_single_step_for_a_cleaner_code。它描述了如何使用上面的代码。

答案 4 :(得分:0)

我会切成几块并使用sprintf()将它们组合在一起。

答案 5 :(得分:0)

您可以使用模板引擎,即smarty,twig,......