标题可能有点混乱。这是我的问题:
我知道您可以在另一个变量中保存一个变量名称,然后读取第一个变量的内容。这就是我的意思:
$variable = "hello"
$variableholder = 'variable'
echo $$variableholder;
那会打印:"你好"。现在,我对此有问题:
$somearray = array("name"=>"hello");
$variableholder = "somearray['name']"; //or $variableholder = 'somearray[''name'']';
echo $$variableholder;
这给了我一个PHP错误(它说$somearray['name']是一个未定义的变量)。你能告诉我这是否可能,我做错了什么吗?或者,如果这显然是不可能的,你能给我另一个解决方案来做类似的事情吗?
提前谢谢。
目前,我只能想到这样的事情:
<?php
// literal are simple
$literal = "Hello";
$vv = "literal";
echo $$vv . "'n";
// prints "Hello"
// for containers it's not so simple anymore
$container = array("Hello" => "World");
$vv = "container";
$reniatnoc = $$vv;
echo $reniatnoc["Hello"] . "'n";
// prints "World"
?>
这里的问题是(引用自 php:动态访问数组值):
PHP 语言的语法只允许在变量表达式的末尾使用下标符号,而不允许在一般的表达式中使用下标符号,这是它在大多数其他语言中的工作方式。
PHP是否允许在任何地方使用下标符号,可以将其写得更密集
echo $$vv["Hello"]
旁注:我想在生产中使用变量并不是那么理智。
这个怎么样?(注意:变量变量和goto一样糟糕)
$variablename = 'array';
$key = 'index';
echo $$variablename[$key];