У меня есть массив, к которому я могу получить доступ только через переменные переменные, например:
$foo['bar'] = "pie"; $fixed_name_variable = "foo['bar']"; echo $$fixed_name_variable;
Который в пироге pie
троиса. Кроме того, что он просто ничего не возвращает. Поэтому мне нужно знать, действительно ли этот подход работает или мне нужно переосмыслить его.
Просто заметил. На второй строке, должна ли строка в кавычках?
Хотя я ненавижу поощрять такое поведение, вы можете использовать eval
для достижения того, что вы в ограниченной степени.
$foo['bar'] = "pie"; $fixed_name_variable = "foo['bar']"; $a = eval("return $$fixed_name_variable;"); echo $a; //outputs "pie"
$foo[$key_var]
должен работать, если я не понял ваш вопрос?
Нет, я не думаю, что это возможно. Единственное (очевидно) возможное – использовать переменный индекс и получить доступ к $foo[$bar]
.
Однако использование переменных переменных, как правило, очень плохая практика – особенно потому, что они делают отладку и автоматическую документацию / поиск переменных настолько ужасно трудными. Обычно лучше не использовать их, а вместо этого использовать массив.