0

ループに組み込まれている配列として定義された変数があります。

$years=array("2010","2011","2012");

    foreach($years as $year)
    {
    ///an SQL query + some PDO that queries a different table based on $year
    $dataset_full_{$year} = $stmt->fetchAll(PDO::FETCH_ASSOC);
    }

したがって、次の名前の配列のセットになります

$dataset_full_2010
$dataset_full_2011
$dataset_full_2012

しかし、私print_r($dataset_full_2012);は何も得られませんが、先に進んで定義すると

$current_year="2012";

それから

print_r($dataset_full_{$current_year});

配列を取得します。ここで誤用している構文は何ですか?

前もって感謝します

4

1 に答える 1

1

安全のために、いつでも中間文字列を使用できます。

$var_name = "dataset_full_" . $year;
$$var_name = $stmt->fetchAll(PDO::FETCH_ASSOC);

中括弧内で連結を使用することもできます。

${"dataset_full_" . $year} = ...

これがドキュメントです

于 2013-02-18T02:24:33.250 に答える