can array values be accessed by variable variables?

纵然是瞬间 提交于 2019-12-02 17:12:47

问题


I have an array which I can only access correctly via variable variables, like so:

$foo['bar'] = "pie";

$fixed_name_variable = "foo['bar']";

echo $$fixed_name_variable;

Which in theroy echo's pie. Except it's just not returning anything. So I need to know if this approach is actually workable or if I need a rethink on it.

Just noticed. On the second line, should the bar be in quotes?


回答1:


Although I hate to encourage this behaviour, you can use eval to achieve what you to a limited extent.

$foo['bar'] = "pie";
$fixed_name_variable = "foo['bar']";

$a = eval("return $$fixed_name_variable;"); 
echo $a; //outputs "pie"



回答2:


$foo[$key_var] should work, unless I misunderstood your question?




回答3:


No, I don't think this is possible. The only thing (obviously) possible is to use a variable index, and access $foo[$bar].

However, using variable variables is usually very bad practice anyway - especially because they make debugging and automatic documentation / variable lookup so terribly difficult. It's usually best not to use them, but to use an array instead.



来源:https://stackoverflow.com/questions/5065294/can-array-values-be-accessed-by-variable-variables

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!