2009-10-30 46 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