2012-06-20 29 views
1

期間訪問值,我想看看是否有可能訪問我以前在同一陣列中定義的鍵的值。PHP - 從先前定義的鍵數組初始化

喜歡的東西:

$test = array(
    'foo' => 1, 
    'bar' => $test['foo'] 
); 

我知道我可以初始化後這樣總是這樣,我只是想知道,如果它在初始化過程中可能?

+3

不,在那個時間點'$ test'還不存在。 – Wrikken

+0

是的,print-r會產生:Array([foo] => 1 [bar] =>)。還嘗試了$$ test ['foo']和$ test {'foo'}以獲得相同的結果。沒有問題,如果它不能這樣做,但只是好奇 –

+0

我編輯你的問題澄清你問 – nickb

回答

0

不,$test不存在,直到完全構造函數進行評估。

例如:http://codepad.viper-7.com/naUprJ

Notice: Undefined variable: test.. 
array(2) { ["foo"]=> int(1) ["bar"]=> NULL } 

這也許是最好的。這個想象的工作:

$test = array('foo' => $test['foo']); // mwahaha 

如果你需要做這個有很多,你可以創建一個類,帶有該標誌的類的構造函數,它應該被解析,直到所有相關按鍵進行評估特定格式的密鑰。

+0

當你這樣說時有意義;)好吧,謝謝你回答 –

+0

僅供參考,這些不是構造函數 - 它都必須處理數組初始化。 – nickb

+0

好的,謝謝你對這個問題的修改以澄清 –