PHP字符串连接问题?

时间:2010-09-14 03:47:20

标签: php string concatenation echo

function formatUpdate($tweet,$dt,$picture,$username)
{
    if(is_string($dt)) $dt=strtotime($dt);

    $tweet=htmlspecialchars(stripslashes($tweet));


       $at = "@" . $username;




    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> '. preg_replace('/((?:http|https|ftp):\/\/(?:[A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?[^\s\"\']+)/i','<a href="$1" rel="nofollow" target="blank">$1</a>',$tweet).'
    <div class="date">'.relativeTime($dt).'</div> <a class ="reply"  href="?replyto=' echo $at;   '">reply</a>
    </div>
    <div class="clear"></div>
    </li>';

}

2 个答案:

答案 0 :(得分:1)

螺栓是对的。通常concat问题与混合代码,文字和结束引号/双引号的混淆有关。尝试使用heredoc来清理你的代码块。

例如,我会做以下操作来拯救我的眼睛盯着代码,并保持我的思想从疯狂试图找到语法错​​误的位置(仅伪编码):

$at = "@$username";
$rt = relativeTime($dt);

$out = <<<raw
    <div class="date">$rt</div>
    <a class ="reply" href="?replyto=$at">reply</a>
raw;

看看它看起来多么简单呃?

了解heredoc这里是一个阅读参考。

参考:http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

答案 1 :(得分:0)

要将变量的值附加到字符串,您不需要回显变量。

你有

href="?replyto=' echo $at;   '">reply</a>

将其更改为

href="?replyto='. $at .'">reply</a>