为什么这段PHP代码会出现解析错误

为什么这段PHP代码会出现解析错误,php,Php,对于我的迷你论坛,我有一个“topics”表,其中包含id(int)、title(txt)和post(txt)字段,我试图让用户根据他们通过topicPage.php单击的主题查看不同的页面: <? //send a query to retrieve all titles from the topics database $query = "SELECT * FROM topics" ; $result = mysql_query($query) or die ("something

对于我的迷你论坛,我有一个“topics”表,其中包含id(int)、title(txt)和post(txt)字段,我试图让用户根据他们通过topicPage.php单击的主题查看不同的页面:

  <?
//send a query to retrieve all titles from the topics database
$query = "SELECT * FROM topics" ;
$result = mysql_query($query) or die ("something went wrong with this query");

    ?>

<span class="subtext">  <?
while($row = mysql_fetch_array($result))
{
echo "<a href = 'topicPage.php?tid=$row['id']'>" .$row['title']. " </a>"." <br>" ." <br>";

}
?>

我在echo函数的行上得到一个解析错误

下面是确切的错误:

分析错误:语法错误,意外的T_封装的_和_空格,第85行的/index.php中需要T_字符串或T_变量或T_NUM_字符串


对待
$row['id']
的方式与对待
$row['title']
以下部分的方式相同:

echo "<a href = 'topicPage.php?tid=$row['id']'>";
echo”:

echo”“;

使用单引号这些问题很少出现:

echo '<a href="topicPage.php?tid='.$row['id'].'">'.$row['title'].'</a><br /><br />';
echo'

';
另外,您不需要像这样连接

标记,您可以在一大块字符串中提供它们。

echo.“
”;
echo "<a href = 'topicPage.php?tid=" . $row['id'] . "'>" .$row['title']. " </a>"." <br>" ." <br>";

尽量保持相同的样式…

它不太复杂,只是语法错误。编写
echo”“;
可以工作;)但是为什么$row['title']工作得很好?@nikic是的,它可以工作;;@algorithmicCoder因为它不在字符串中。使用{}可以解决问题,但为什么使用$row['id']太复杂“…或者更确切地说,当某件事情太复杂时?…当它不是一个原始变量/当它是一个表达式时?我将无法定义什么时候
{}
是必要的,什么时候是必要的,并且会冒着犯一些错误的风险(我通常使用它们只是为了让我的代码更具可读性)——但手册中有几个例子,那可能对你有点帮助。
echo "<a href = 'topicPage.php?tid=" . $row['id'] . "'>" .$row['title']. " </a>"." <br>" ." <br>";