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++)
{
    $x = "q$i";
    echo $$x;
}

動作します!

于 2013-07-25T11:46:53.603 に答える
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 に答える
0

このコードを使用してください。動作するはずです:)

echo ${"q${i}"};
于 2013-07-25T11:59:31.510 に答える
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 に答える