PHP语法错误需要帮助修复


PHP syntax error need help to fix

我得到以下错误:

第2行出现语法错误,在修复此错误之前,代码提示可能无法工作

任何人都可以帮助我修复这个语法错误

这是代码:

$TMPL['comments'] .= '<div class="box shadow"></div>
<div class="comments">'.foreach((array)comments($page_id) as $comment){.'
        <div class="comment shadow effect">
            <p class="left tip" title="'.$comment[username].' Said">
                <img class="avatar" src="'.get_gravatar($comment[email],40).'" />
            </p>
            <p class="body right">'.nl2br($comment[comment]).'
            <div class="details small">
                <span class="blue">'.timeBetween($comment['time'],time()).'</span> · <a class="red" href="#" onclick="$(this).delete_comment('.$comment['id'].'); return false;">Remove</a>
            </div>
            </p>
        </div>
    '}'
</div>
<div class="add_comment">
    <div class="write shadow comment">
        <p class="left">
            <img class="avatar" src="#" />
        </p>
        <p class="textarea right">
            <textarea class="left" cols="40" rows="5"></textarea>
            <input class="left" value="SEND" type="submit" />
        </p>
    </div>
    <a onclick="$(this).add_comment('.$page_id.');return false;" class="right effect shadow" href="#">Add Comment</a>
</div>';

错误在第2行和第13行…

不能像使用foreach那样在字符串串联中使用乘积。

你必须把事情分开,像这样:

foreach((array)comments($page_id) as $comment)
 {
   $TMPL['comments'] .= .........

这是因为在附加到字符串的语句中不能有foreach构造(在您的情况下)。您需要以下内容:

$TMPL['comments'] .= '<div class="box shadow"></div><div class="comments">';
foreach (....){
    $TMPL['comments'] .= "more string..";
    $TMPL['comments'] .= "many more strings..";
}