Eu tenho uma matriz que só posso acessar corretamente através de variables variables, assim:
$foo['bar'] = "pie"; $fixed_name_variable = "foo['bar']"; echo $$fixed_name_variable;
O que na pie
do eco de theroy. Exceto que não está devolvendo nada. Então eu preciso saber se essa abordagem é realmente viável ou se eu precisar de uma repensação nela.
Apenas notei. Na segunda linha, a barra deve estar entre aspas?
Embora eu odeie encorajar esse comportamento, você pode usar o eval
para alcançar o que você tem em uma extensão limitada.
$foo['bar'] = "pie"; $fixed_name_variable = "foo['bar']"; $a = eval("return $$fixed_name_variable;"); echo $a; //outputs "pie"
$foo[$key_var]
deve funcionar, a menos que eu não tenha entendido sua pergunta?
Não, não acho que isso seja possível. A única coisa (obviamente) possível é usar um índice variável e acessar $foo[$bar]
.
No entanto, o uso de variables variables geralmente é uma prática muito má, especialmente porque eles fazem a debugging e documentação automática / pesquisa variável tão terrivelmente difícil. Geralmente é melhor não usá-los, mas usar uma matriz em vez disso.