PHP项目中URL传递多参数出现语法错误求助
解决PHP语法错误:Unexpected string content
错误原因
你遇到的语法错误源于HTML属性引号与PHP数组变量的引号冲突:
代码中href='admin.php?id=$result['ID']&navn=$result['Navn']'部分,$result['ID']里的单引号会提前闭合href的单引号,导致PHP无法正确解析字符串,进而抛出语法错误。
修复方案
以下几种方法均可解决该问题:
方法1:字符串拼接
通过点号.将PHP变量与HTML字符串拼接,彻底规避引号冲突:
echo "<div class='fjern'><a OnClick=\"return confirm('Er du sikker på du vil slette reservationen');\" href='admin.php?id=" . $result['ID'] . "&navn=" . $result['Navn'] . "'>X</a></div>";
方法2:大括号包裹变量+双引号属性
将href的单引号改为转义后的双引号,并用大括号{}包裹数组变量,确保PHP正确解析:
echo "<div class='fjern'><a OnClick=\"return confirm('Er du sikker på du vil slette reservationen');\" href=\"admin.php?id={$result['ID']}&navn={$result['Navn']}\">X</a></div>";
方法3:HEREDOC语法(推荐,可读性更高)
使用HEREDOC无需大量转义引号,可直接在文本中嵌入变量:
echo <<<HTML <div class='fjern'><a OnClick="return confirm('Er du sikker på du vil slette reservationen');" href="admin.php?id={$result['ID']}&navn={$result['Navn']}">X</a></div> HTML;
注意:HEREDOC结束标记
HTML;必须单独占一行,且前后不能有空格。
内容的提问来源于stack exchange,提问作者Dab
相关产品推荐
相关产品推荐

