我得到以下错误:
第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..";
}