在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';
但我真的需要命名索引:/
答案 0 :(得分:4)
这样写:
${$var}['en']
来自文档:
为了使用变量变量 对于数组,你必须解决一个问题 歧义问题。也就是说,如果你 写一个1然后解析器需要 知道你是否打算用$ 1作为 变量,或者如果你想要$$ a作为 变量,然后是1索引 那个变量。的语法 解决这种歧义的是:$ {$ a 1} 对于第一个案例和$ {$ a} 1 第二个。
答案 1 :(得分:2)
你真正想要的是:
${$var}['en']
如手册中所述,问题不明确。当您编写$$var['en']
时,它会先尝试查找$var['en']
的值,然后找到一个带有该索引值的变量。 ${$var}['en']
中的大括号表示您希望首先展开$var
。