导致结果失败的 PHP 语法



我目前正在使用 PHP/SQL/AJAX 编写一个虚拟的评论/答案系统,由于我的编码风格语法,我的输出div 出现了问题。

为了简化代码,我刚刚包含了 while 循环: 准备查询 $sqlQuery ="选择 * 从问题 按问题ID排序";

//exec query
$result = mysql_query($sqlQuery) or die(mysql_error());
//loop for multipule results
while ($row = mysql_fetch_array($result))
{
echo '<div class="test" id="test_$questionID">'; //<--doesn't work
//code here
echo '</div>';
echo "<div class='test' id='test_$questionID'>"; //<--works
//code here
echo '</div>';
}

失败代码行的输出:

<div class="test" id="test_$questionID">

成功代码行的输出:

<div class='test' id='test_21'>

当我使用 " 而不是 ' 启动回显时,上面的代码有效,我的 PHP 风格是用 ' 开始每个外部,用 " 开头

。我应该将我的div 回声更改为以" 开头还是有其他方法?

编辑:感谢所有快速回复!

我被教导开始使用单打而不是双打,而没有背后的实际原因。

我不知道冲突是由于文本解释不正确而引起的,并且环境没有抛出任何错误来指导。@PressingOnAlways转义它们或按照@santhy建议更改它们。

这并不是说我问单打和双打之间的区别,因为我不知道这是错误的领域。我现在可以看到它是,但不确定我会知道先寻找那篇堆栈文章对不起。

您需要使用双引号,但使用反斜杠转义内部双引号。例如:

echo "<div class="test" id="test_$questionID">";

我们可以使用不同的方式,看看其中的一些

while ($row = mysql_fetch_array($result))
{
echo '<div class="test" id="test_'.$questionID.'">';
//code here
echo '</div>';
echo "<div class='test' id='test_{$questionID}'>";
//code here
echo '</div>';
echo "<div class="test" id="test_{$questionID}">";
//code here
echo '</div>';
?>
<div class="test" id="test_<?=$questionID;?>"> <?php
//code here
?>
</div> <?php
}

试试这个:

替换echo '<div class="test" id="test_$questionID">'; //<--doesn't work行:

<?php
//exec query
$result = mysql_query($sqlQuery) or die(mysql_error());
//loop for multipule results
while ($row = mysql_fetch_array($result))
{
echo '<div class="test" id="test_'. $questionID .'">'; //<--now work
//code here
echo '</div>';
echo '<div class="test" id="test_'. $questionID .'">'; //<--now work
//code here
echo '</div>';
}

PHP 不会在用单引号括起来的字符串中进行变量插值。必须使用双引号。 此外,在插入与附近字符组合的变量时,我将其作为一种做法,为了清楚起见,我将变量括在括号中。

所以

echo '<div class="test" id="test_$questionID">';

成为:

echo "<div class="test" id="test_{$questionID}">";

最新更新