Создайте имя переменной в PHP из двух переменных - PullRequest
5 голосов
/ 13 ноября 2011

В зависимости от текущей страницы, я хотел бы изменить CSS выбранного модуля меню и сделать другие разные и т. Д. Все это при динамическом построении страницы перед загрузкой.

Моя проблема заключается в том, что у меня есть серия переменных, идущих по этой структуре:

$css_(NAME_OF_MODULE)

Чтобы узнать, какую переменную нужно установить, у меня есть другая переменная, которую я получил в параметрах этой функции, которая называется

$chosen_menu

Скажите $chosen_Menu = "C1", я хотел бы добавить контент к $css_C1. Таким образом, я хочу создать имя переменной из 2 переменных с именем $css_C1

Я пытался:

${$css_.$chosen_menu} = "value";

Но, похоже, это не работает. Любая подсказка?

Ответы [ 4 ]

5 голосов
/ 13 ноября 2011

Это, вероятно, не сработает. PHP поддерживает полную косвенность, поэтому что-то вроде этого будет работать.

$varName = $css."_".$chosen_menu;
$$varName = "value";

Если нет, вероятно, он попытается интерпретировать $css_ как имя переменной во втором примере кода, поэтому просто измените его на $css."_".$chosen_menu.

2 голосов
/ 13 ноября 2011

Выезд http://php.net/manual/en/language.variables.php

Вы должны быть в состоянии использовать:

$menu = $css . '_' .$chosen_menu;
$$menu = 'some value';

или

${$menu} = 'some value';
1 голос
/ 10 февраля 2014
$nr = 1;        
       ${'name' . $nr} = 20 ;        
       var_dump($name1);   
0 голосов
/ 13 ноября 2011

Я не уверен, правильно ли я вас понял, но как на счет этого:

${$css."_".$chosen_menu} = "value";
...