Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么$$var[';namedIndex';]=';测试';不起作用?_Php - Fatal编程技术网

Php 为什么$$var[';namedIndex';]=';测试';不起作用?

Php 为什么$$var[';namedIndex';]=';测试';不起作用?,php,Php,在PHP中,您可以 $var = 'title'; $$var = 'my new title'; 而且效果很好。但当您尝试将它与数组一起使用时,它不起作用,并且不会报告任何错误 $var = 'title'; $$var['en'] = 'my english title'; $var = 'description'; $$var['en'] = 'my english description'; 谢谢你的帮助 [编辑] 如果我这样做 它工作并且输出 title[0] = 'test'

在PHP中,您可以

$var = 'title';
$$var = 'my new title'; 
而且效果很好。但当您尝试将它与数组一起使用时,它不起作用,并且不会报告任何错误

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

$var = 'description';
$$var['en'] = 'my english description';
谢谢你的帮助

[编辑] 如果我这样做

它工作并且输出

title[0] = 'test';
但我真的需要命名索引://p>这样写:

${$var}['en']
从文档中:

为了使用可变变量 对于数组,您必须解析 歧义问题。也就是说,如果你 写入$$a,然后解析器需要 知道你是不是想用$a作为 变量,或者如果希望$$a作为 变量,然后从 这个变量。的语法 解决此歧义的方法是:${$a} 对于第一个案例,${$a}对于 第二个


您真正想要的是:

${$var}['en']

正如手册中所述,问题在于含糊不清。编写
$$var['en']
时,它会首先尝试查找
$var['en']
的值,然后查找具有该索引值名称的变量。
${$var}['en']
中的大括号表示希望先展开
$var

wow。。。谢谢我查阅了手册,但没有找到这一页。再次感谢!
${$var}['en']