在PHP代码中解析错误

时间:2013-07-26 11:28:55

标签: php php-parse-error

我正在

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)

错误在php代码的以下行...可以解释这个问题。

   echo "<tr><td><a href=\"$row['link']\"><img src=\"$row['image']\" title=\"$row['game']\" width=\"68\" height \"57\" /></a></td><td><a href=\"$row['link']\">$row['game']</a> </td><td> $row['total']</td></tr>";

7 个答案:

答案 0 :(得分:2)

问题是你嵌入在字符串中的数组变量。

当您在字符串中嵌入数组变量时,必须将其用大括号括起来,如下所示:

$stringvar = "blah blah {$arrayvar['element']} blah blah";

因此,在您的代码中,$row['link']和所有其他$row元素需要包含在{}大括号中。

请注意,您可以(并且应该)对字符串中的所有变量执行此操作,但它对于数组元素是必需的。

此外,您在字符串中的一个引号上缺少转义斜杠:\"57"。这也会导致语法错误。

希望有所帮助。

协助调试:这是一个相当漫长而复杂的代码行,有很多转义引号等,这使得一次性调试很困难(特别是当它有多个问题时)。

我的建议是通过将其分解为更易于管理的块来调试它。出于同样的原因,你仍会得到相同的错误,但找到它们会更容易。一旦修复后,您可以将该线路再次连接成一条长线。

最后,我建议使用支持语法高亮的体面IDE或文本编辑器。这将为您提供有关错误位置的更好反馈。

答案 1 :(得分:1)

请注意易读性,在字符串中使用大量双引号时使用单引号,并使用concatenate变量。否则,最终会在字符串中加载\,并且更难找到变量:

echo '  <tr>
            <td>
                <a href="'.$row['link'].'">
                    <img src="'.$row['image'].'" title="'.$row['game'].'" width="68" height="57" />
                </a>
            </td>
            <td>
                <a href="'.$row['link'].'">'.$row['game'].'</a>
            </td>
            <td>'.$row['total'].'</td>
        </tr>';

答案 2 :(得分:0)

试试这个

   echo "<tr><td><a href=\"$row['link']\"><img src=\"$row['image']\" title=\"$row['game']\" width=\"68\" height \"57\" /></a></td><td><a href=\"$row['link']\">$row['game']</a> </td><td> $row['total']</td></tr>";

缺少逃脱qoute

答案 3 :(得分:0)

你错过了一个尾随斜线

 height =\"57\"

答案 4 :(得分:0)

试试这个

echo '<tr><td><a href="' . $row['link'] . '"><img src="' . $row['image'] . '" title="' . $row['game'] . '" width="68" height="57" /></a></td><td><a href="' . $row['link'] . '">' . $row['game'] . '</a></td><td>' . $row['total'] . '</td></tr>';

答案 5 :(得分:0)

试试这个:

echo '<tr><td><a href="'.$row['link'].'"><img src="'.$row['image'].'" title="'.$row['game'].'" width=\"68\" height \"57" /></a></td><td><a href="'.$row['link'].'">'.$row['game'].'</a> </td><td> '.$row['total'].'</td></tr>';

答案 6 :(得分:0)

echo "<tr>
 <td>
  <a href=\"{$row['link']}\">
   <img src=\"{$row['image']}\" title=\"{$row['game']}\" width=\"68\" height \"57\" />
  </a>
 </td><td>
  <a href=\"{$row['link']}\">{$row['game']}</a> </td><td> {$row['total']}
 </td>
</tr>";

使用{}将变量包含到字符串中总是一个好习惯,特别是在这里,因为它是一个数组值。

此外,这里出现了错误: height =\"57" =&gt; height =\"57\"

另外,你可以写下面的内容,以获得更多资格:

echo '<a href="'.$row['link'].'">...';