请看一下:
$order = isset( $_GET['o'] ) ? '?o='.$_GET['o'].'&p=' : '?p=';
echo "<a href='$order.1'>1</a> ";
正如fiddle中显而易见的,这是输出:
<a href='?p=.1'>1</a>
// ^ this
但正如我在上面的代码中所评论的那样,应删除那个点*(在那里充当分隔符)。所以这是预期的结果:
<a href='?p=1'>1</a>
当我删除它时,变量名将合并到该数字,PHP无法再找到预期的变量。
无论如何,有没有解决方法?
答案 0 :(得分:3)
像这样使用complex string syntax。
"<a href='{$order}1'>1</a> ";
答案 1 :(得分:0)
您遇到字符串连接问题。它可以通过以下方式修复
<?php
$order = isset( $_GET['o'] ) ? '?o='.$_GET['o'].'&p=' : '?p=';
echo "<a href='".$order."1'>1</a> ";
?>
答案 2 :(得分:0)
您可以使用此方法不将变量与其他字符串连接:
echo "<a href='${order}1'>1</a> ";
答案 3 :(得分:0)
你的问题在这里:
echo "<a href='$order.1'>1</a> ";
请改为尝试:
echo '<a href="' . $order . '"1>1</a>';
如果可以避免在字符串中使用双引号,那么PHP将始终检查变量。 IMO不再需要时间来使用单引号并简单地连接值。我其实更喜欢使用它:
echo sprintf('<a href="%s%d">%d</a>', $order, 1);
有关详细信息,请查看here。