Php 如何在后面定义的字符串concat中使用变量?

Php 如何在后面定义的字符串concat中使用变量?,php,string,Php,String,数组中有一个空变量。我给了它一个值并回显它,但它仍然是空的 这是我的密码: $arr = array('0' => '<a href="www.example.com/vote.php?id='.$end['id'].'">'); while($end = mysql_fetch_assoc($result)){ $end['id']; // if I echo it, it will be a number, for e.g. 12 echo $arr[

数组中有一个空变量。我给了它一个值并回显它,但它仍然是空的

这是我的密码:

$arr = array('0' => '<a href="www.example.com/vote.php?id='.$end['id'].'">');

while($end = mysql_fetch_assoc($result)){

    $end['id']; // if I echo it, it will be a number, for e.g. 12

    echo $arr[0]; // output: <a href="www.example.com/vote.php?id=">
}

你可以简单地用这种方法

$arr = array('0' => '<a href="www.example.com/vote.php?id='".$end['id']."'">');
$arr=array('0'=>'');

可能会有帮助

你可以简单地用这种方法

$arr = array('0' => '<a href="www.example.com/vote.php?id='".$end['id']."'">');
$arr=array('0'=>'');
可能会有帮助

以下是解决方案:

$arr = array('0' => '<a href="www.example.com/vote.php?id=%d">');
...

echo sprintf( $arr[0],$end['id']);
$arr=array('0'=>'');
...
echo sprintf($arr[0],$end['id']);
输出:

output: <a href="www.example.com/vote.php?id=12">
输出:
以下是解决方案:

$arr = array('0' => '<a href="www.example.com/vote.php?id=%d">');
...

echo sprintf( $arr[0],$end['id']);
$arr=array('0'=>'');
...
echo sprintf($arr[0],$end['id']);
输出:

output: <a href="www.example.com/vote.php?id=12">
输出:

tldr;在为变量赋值之前,不能在字符串concat中有效地使用该变量。这个问题与数组无关,最好从
$result='数组右括号在哪里开始
?您可以通过问题中的代码高亮显示看到代码有错误。@James抱歉,这只是一个输入错误。我将更新它。现在您缺少了一个结束撇号
-编辑确定现在似乎是确定的:)您的代码的其余部分正确高亮显示,而不是红色以表示错误error@SajadPHP中没有指针。虽然存在引用,但这些引用不会与字符串concat一起使用,而字符串concat是一个急切的求值操作。然而,有一些方法可以实现类似的最终目标。例如,一种方法是在当时使用并提供$end['id']的值。我会推荐KISS,但我毫不怀疑,有一些小型图书馆/一次性课程可以更紧密地实现这一目标;在为变量赋值之前,不能在字符串concat中有效地使用该变量。这个问题与数组无关,最好从
$result='数组右括号在哪里开始
?您可以通过问题中的代码高亮显示看到代码有错误。@James抱歉,这只是一个输入错误。我将更新它。现在您缺少了一个结束撇号
-编辑确定现在似乎是确定的:)您的代码的其余部分正确高亮显示,而不是红色以表示错误error@SajadPHP中没有指针。虽然存在引用,但这些引用不会与字符串concat一起使用,而字符串concat是一个急切的求值操作。然而,有一些方法可以实现类似的最终目标。例如,一种方法是在当时使用并提供$end['id']的值。我会推荐KISS,但我毫不怀疑,为了更紧密地实现这一目标,有一些小型图书馆/一次性课程。