2016-02-02 155 views
2

我有兩個配置文件。第一,這是所謂configs.php包含一些值的數組:無法訪問關聯數組值

$welcomeConfigs = [ 
    "title" => "welcome", 
    "description" => "a description" 
]; 

第二文件包括一個configs.php和使用它的陣列,以產生一些其他變量。第二個文件叫做views.php

$viewConfigs = VIEW . 'Configs'; 
$pathToViewConfigs = VIEW . '/configs.php'; 

include($pathToViewConfigs); 

var_dump($$viewConfigs); 

index.php

define("VIEW", "welcome"); 
include('views.php'); 

我需要在$title變量來存儲,例如,關聯數組的值,但是當我嘗試這樣做沒有任何反應。我試圖使用var_dump來檢查語法是否正確,我使用外部小提琴來檢查是否有錯誤,但沒有任何錯誤。

當類型var_dump($$viewConfigs);輸出是{ ["title"]=> string(7) "welcome" ["description"]=> string(13) "a description" }

但是當我鍵入var_dump($$viewConfigs['title']);輸出是NULL

我該如何解決這個問題?我做錯了什麼?

回答

2

你必須使用此語法:

var_dump(${$viewConfigs}['title']); 

該解釋$viewConfigs變量名。表格$$viewConfigs['title']解釋爲變量名稱的內容od $viewConfigs['title'],不存在。

我希望我已經清楚。

(編輯:)查看更多有關變量的變量上PHP Official site

+0

謝謝你這是正確的! (儘管如此,我仍然需要等6分鐘才能將其作爲正確的答案) – dcdeiv

+2

是的,並且從「變量變量」手冊中的相關部分:「爲了在數組中使用變量變量,必須解決模糊問題。也就是說,如果你寫$$ a [1],那麼解析器需要知道你是否打算使用$ a [1]作爲變量,或者如果你想要$$ a作爲變量,然後是[1]索引該變量的解析語法是:第一種情況爲$ {$ a [1]},第二種情況爲$ {$ a} [1]。「 – gview

+0

@gview謝謝。我在答案中添加了鏈接。 – fusion3k