1

我知道如何在引号内执行 php 变量

$q1 = 1;
$q2 = 2;
$q3 = 3;
$q4 = 4;
$q5 = 5;

echo "${q1}"; //outputs 1

我怎样才能循环输出它们?

for($i=1; $i<=5; $i++)
{
    echo "${q$i}"; //how to make $i work here?
}

如何$i配合工作$q

更新

我希望引号在那里,因为我正在循环中创建一个字符串,并且我想将该循环传递给 mysql 查询。所以我希望字符串像

$str = '$q1, $q2, $q3';

当我将它传递给 mysql 查询时,它应该解释 $q1, $q2, $q3 的值,即 1,2,3

mysql_query("INSERT INTO users (col1, col2, col3) VALUES ($str)"); 

所以它应该变成

mysql_query("INSERT INTO users (col1, col2, col3) VALUES (1,2,3)");

这只是一个例子,我知道的语法mysql_query是错误的,但你知道

4

5 回答 5

2

我认为您正在寻找的是:

<?php

$arr = array();

$q1 = 1;
$q2 = 2;
$q3 = 3;
$q4 = 4;
$q5 = 5;

for($i=1; $i<=5; $i++)
{
    $arr[] = ${"q".$i}; 
}

$str = implode($arr, ',');

print_r($str);

输出:

1,2,3,4,5

在行动:http ://codepad.org/ep7sraT5

于 2013-07-25T11:59:52.443 回答
0
for($i=1; $i<=5; $i++)
{
    echo ${"q".$i};
}

输出:

12345

键盘:http ://codepad.org/2PIshh41

更新:

由于您想将值存储在变量中,您可以这样做:

$str = '';
for($i=1; $i<=5; $i++)
{
    $str .= "${"q".$i}, "; 
}
$str = rtrim($str, ' ,'); //trim last comma

mysql_query("INSERT INTO users (col1, col2, col3) VALUES ($str)"); 

//becomes mysql_query("INSERT INTO users (col1, col2, col3) VALUES (1, 2, 3, 4, 5)")

希望这可以帮助!

于 2013-07-25T11:46:46.073 回答
0
for($i=1; $i<=5; $i++)
{
    $x = "q$i";
    echo $$x;
}

作品!

于 2013-07-25T11:46:53.603 回答
0

使用此代码,它应该可以工作:)

echo ${"q${i}"};
于 2013-07-25T11:59:31.510 回答
0

整个事情的双引号是没用的

利用

echo ${'q' . $i};

编辑:如果你想创建逗号分隔的字符串,为什么不试试

$q1 = 1;
$q2 = 2;
$q3 = 3;
$q4 = 4;
$q5 = 5;

$parts = array();
for($i=1; $i<=5; $i++)
{
    $parts[] = ${'q' . $i};
}

$str = implode(', ', $parts);

还可以考虑在运行 MYSQL 之前转义值,您可以在将值添加到$parts数组之前在 for 循环中执行此操作

于 2013-07-25T12:01:40.107 回答