2009-10-30 80 views
3

在PHP中你可以在你

$var = 'title'; 
$$var = 'my new title'; 

,它工作正常。但是,當您嘗試將其與數組一起使用時,它不起作用並且不報告錯誤。

$var = 'title'; 
$$var['en'] = 'my english title'; 

$var = 'description'; 
$$var['en'] = 'my english description'; 

感謝您的幫助

[編輯] 如果我做

$$var = array(); 
array_push($$var,'test'); 

它的工作原理,它輸出

title[0] = 'test'; 

但我真的需要指定索引:/

回答

4

寫這樣的:

${$var}['en'] 

從文檔:

爲了使用可變變量 使用數組,你必須解決的 模糊問題。也就是說,如果你 寫$$一個1然後解析器需要 知道,如果你的意思是$ 1作爲 變量,或者如果你想$$一個作爲 變量,然後1指數從 一個使用變量。解決此歧義的 的語法是:第一種情況爲$ {$ a 1} ,第二種情況爲$ {$ a} 1爲 。

Link For Reference

+0

哇......謝謝!我查了一下手冊,但是我從來沒有找到這個頁面。再次感謝! – PierrePaul 2009-10-30 20:34:47

+0

它應該是$ {$ var} ['en'] – 2009-10-30 20:41:58

+0

oops,你是對的,我犯了一個錯字。修正了我的答案。 – GSto 2009-10-30 20:47:05

2

你真正想要的是:

${$var}['en'] 

的問題,按照手冊中的規定,是不確定性。當您編寫$$var['en']時,它會先嚐試找到$var['en']的值,然後找到具有該索引值名稱的變量。 ${$var}['en']中的大括號表示您希望首先擴展$var