如何将变量名与包围的字符分开?

时间:2017-05-24 16:15:16

标签: php variables

请看一下:

$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无法再找到预期的变量。

无论如何,有没有解决方法?

4 个答案:

答案 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

相关问题