Создайте имя переменной в PHP из двух переменных

#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";