#php #variables #format
#php #переменные #формат
Вопрос:
В зависимости от текущей страницы я хотел бы изменить css выбранного модуля меню и сделать другие другими и т.д. Все это при динамическом создании страницы перед загрузкой.
Моя проблема в том, что у меня есть серия переменных, использующих эту структуру :
$css_(NAME_OF_MODULE)
Чтобы знать, какая переменная должна быть установлена, у меня есть другая переменная, которую я получил в параметрах этой функции, называется
$chosen_menu
Скажем $chosen_Menu = "C1"
, я хотел бы добавить содержимое в $css_C1
. Таким образом, я хочу создать имя переменной из 2 переменных с именем $css_C1
Я пытался :
${$css_.$chosen_menu} = "value";
Но, похоже, это не работает. Есть какие-нибудь подсказки?
Комментарии:
1. Почему вы используете $css_ вместо $ css?
2. Почему бы и нет? Есть ли какая-либо причина не делать этого? РЕДАКТИРОВАТЬ: В вопросе была ошибка.
3. Почему бы вам просто не использовать ассоциативный массив?
Ответ №1:
Вероятно, это просто не сработает. PHP поддерживает полную косвенность, так что что-то вроде этого будет работать.
$varName = $css."_".$chosen_menu;
$$varName = "value";
Если нет, то, вероятно, будет предпринята попытка интерпретировать $css_
как имя переменной во втором примере кода, поэтому просто измените это на $css."_".$chosen_menu
.
Ответ №2:
$nr = 1;
${'name' . $nr} = 20 ;
var_dump($name1);
Ответ №3:
Проверьте http://php.net/manual/en/language.variables.php
Вы должны уметь использовать:
$menu = $css . '_' .$chosen_menu;
$$menu = 'some value';
или
${$menu} = 'some value';
Ответ №4:
Я не уверен, правильно ли я вас понял, но как насчет этого:
${$css."_".$chosen_menu} = "value";