Значение массива как имя переменной

0

Недавно я нашел еще один вопрос с stackoverflow со следующим:

$segments = array(
"key1"    =>"111",
"key2"    =>"222",
"key3"    =>"333",
"key4"    =>"444"
);

Я хочу иметь такие:

$key1 has the value of  "111";

$key2 has the value of  "222";

$key3 has the value of  "333";

$key4 has the value of  "444";

Ответ состоял в том, чтобы использовать extract($segments).

Я хотел бы добиться чего-то нелогичного, у меня есть следующий массив

 $test = array('hello','world');

Я в идеале хочу пропустить их и использовать значение массива в качестве имени переменной, например:

$test2 = array('hello','world');
foreach($test as $v)
{
   $$v = $v;
}

Поэтому после цикла я мог бы эхом сказать $hello и это приведет к выходному hello.

Может ли кто-нибудь сказать мне, как я мог бы это достичь. Если есть метод без цикла и т.д., То отлично. Я понимаю, что мой пример можно сделать по-другому, чтобы этот вопрос был излишним, но я спрашиваю из любопытства и моих знаний.

  • 0
    Мне просто интересно, как это было бы полезно.
  • 0
    Ваш код работает. Почему вы ищете другой ответ
Показать ещё 2 комментария
Теги:
arrays
loops

1 ответ

2
Лучший ответ

Массивы лучше, и вам редко приходится когда-либо extract или переменные переменные, но это путь (только ради знания):

$test2 = array('hello','world');
extract(array_combine($test2, $test2));
  • 0
    Perfect работает как шарм, мне было интересно, нужно ли вам помещать $ test2 для каждой переменной в массиве, но я проверил это и, очевидно, нет, добавил новый элемент в массив и работает как ожидалось. Большое спасибо приму ваш ответ в ближайшее время, заставив меня ждать в мес.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню