2013-02-18 56 views
0

我定義爲一個數組變量,它是建立在一個循環:PHP變量名語法:數字和變量作爲一個變量名的一部分

$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}); 

我得到我的數組。我在這裏濫用了什麼語法?

在此先感謝

回答

1

爲了安全起見,你可以隨時使用一箇中間字符串:

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

您還可以使用大括號內串聯:

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

Here's the docs

+0

謝謝,那太好了。 – Gideon 2013-02-18 02:47:18